Как заставить 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
Обратитесь к этой статье, она вам очень поможет: