Как заставить SQL корректно обновлять мою запись Измененная метка времени? - PullRequest
4 голосов
/ 20 февраля 2012

Я пытаюсь настроить таблицу 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 Ответ

2 голосов
/ 20 февраля 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...