Как заставить SQL корректно обновлять мою запись Измененная метка времени?

Я пытаюсь настроить таблицу SQL, которая записывает, когда была создана учетная запись и когда он был последний раз изменен. Я хотел бы, чтобы sql справился с этим, поэтому мне не нужно делать это в моих файлах php.

У меня есть две колонки в моей таблице пользователей (оба имеют тип timestamp):

созданный

модифицированный

Я хочу, чтобы "созданное" время никогда не менялось и всегда содержало дату, когда оно было создано, и "измененное" будет изменяться при каждом изменении строки пользователя. У меня настроена таблица, поэтому "создан" работает, как я ожидаю, но когда я пытаюсь обновить измененный:

ALTER TABLE `users` 
   CHANGE `modified` `modified` TIMESTAMP NOT NULL 
   DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP

Я получаю следующую ошибку:

1293 - неверное определение таблицы; может быть только один столбец TIMESTAMP с CURRENT_TIMESTAMP в предложении DEFAULT или ON UPDATE

Может ли кто-нибудь помочь мне в том, что мне нужно сделать, чтобы выполнить это правильно?

1 ответ

Решение

Это все еще не возможно в MySQL. Вы можете установить их на фактическое время только на INSERTsтолько на UPDATEs или на обоих. Однако вы не можете иметь более одного из этих столбцов auto-TIMESTAMP в одной таблице. теперь это возможно с помощью TRIGGERs при использовании Mysql 5.x

Обратитесь к этой статье, она вам очень поможет:

Два столбца auto-TIMESTAMP в одной таблице с MySQL 5.0

Другие вопросы по тегам