MySQL: обновление записи без обновления метки времени
У меня есть метка времени в таблице mysql с атрибутом "ON UPDATE CURRENT_TIMESTAMP". Есть ли способ вручную отключить обновление метки времени по особому случаю? (например: обновление записи для пересмотра сообщения в блоге, но не для его повторного обновления)
5 ответов:
есть ли способ, чтобы вручную отключить обновление метки времени по особому случаю? (например: обновление записи для пересмотра сообщения в блоге, но не для его повторного обновления)
Похоже, вам нужно настроить ограничение по умолчанию, чтобы оно заполняло столбец только при вставке:
DEFAULT CURRENT_TIMESTAMP
изменение его, только это означает, что любые изменения не будут вызывать значение timestamp, чтобы быть обновлены. IE: если вы создали блогпост вчера, и исправили опечатка сегодня-дата в колонке все равно будет за вчерашний день.
вы можете вручную установить значение столбца в его текущее значение в команде update:
UPDATE table SET x=y, timestampColumn=timestampColumn WHERE a=b;
Если вы не зададите значение в запросе, оно будет обновлено до текущей отметки времени в соответствии с определением таблицы.
чтобы сделать вашу таблицу/метку времени автоматического обновления:
ALTER TABLE myTable CHANGE myTimestampColumn myTimestampColumn TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
сделать не автоматическое обновление:
ALTER TABLE myTable CHANGE myTimestampColumn myTimestampColumn TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
примечание:" по умолчанию current_timestamp " часть просто устанавливает его на текущий штамп во время по умолчанию, так как поле не является-null. Вы можете удалить как not null, так и по умолчанию, если хотите.
Не используйте метки времени, но отслеживать время вручную.
Если вы действительно хотите обновить запись и не обновляете ее, используйте метку времени:
UPDATE `table` SET `timestamp` = `timestamp`, `col` = 'new data' …;
Если вы измените timestemp при обновлении, то вы должны принять во внимание, что если значение было обновлено, но не изменилось (обновлено значение сохранения), то оно не будет обновлять "ON update Current_timestemp", и в этой ситуации вы должны установить timestemp вручную
SET LastUpdatedDate=NOW() WHERE
идея пришла отсюда: нажмите запись MYSQL, чтобы обновить поле метки времени