Подтвердить что ты не робот

Обновление записи БЕЗ обновления метки времени

У меня есть метка времени в таблице mysql с атрибутом "ON UPDATE CURRENT_TIMESTAMP". Есть ли способ вручную отключить обновление временной метки по особому случаю? (например: обновить запись, чтобы пересмотреть запись в блоге, но не переписывать ее)

4b9b3361

Ответ 1

Есть ли способ вручную отключить обновление метки времени по особому случаю? (например: обновить запись, чтобы пересмотреть запись в блоге, но не переписывать ее)

Похоже, вам нужно настроить ограничение по умолчанию, чтобы он заполнял столбец только при вставке:

DEFAULT CURRENT_TIMESTAMP

Изменение этого только означает, что любые изменения не будут вызывать значение временной метки, которое будет обновляться. IE: Если вы вчера создали блог-блог и исправили опечатку сегодня - дата в столбце все равно будет на вчера.

Ответ 2

Вы можете вручную установить значение столбца в текущее значение в команде обновления:

UPDATE table SET x=y, timestampColumn=timestampColumn WHERE a=b;

Если вы не установите значение в запросе, оно будет обновлено до текущей метки времени в соответствии с определением таблицы.

Ответ 3

Чтобы автоматическое обновление вашей таблицы/метки времени:

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;

ПРИМЕЧАНИЕ. Параметр "default current_timestamp" просто устанавливает его на текущий штамп по умолчанию, так как поле не равно-null. Вы можете удалить как ненулевые, так и по умолчанию, если хотите.

Ответ 4

не используйте временные метки, но отслеживайте время вручную.

если вы действительно хотите обновить запись и не обновлять ее временную метку:

UPDATE `table` SET `timestamp` = `timestamp`, `col` = 'new data' …;

Ответ 5

Если вы измените временную метку при обновлении, вам следует учесть, что если значение было обновлено, но не изменено (обновлено значение сохранения), то оно не будет обновлять "при обновлении Current_timestemp", и в этой ситуации вы должны установить временную метку вручную

SET LastUpdatedDate=NOW() WHERE

Идея пришла отсюда: Коснитесь записи MYSQL, чтобы обновить поле TIMESTAMP.