У меня есть метка времени в таблице mysql с атрибутом «ON UPDATE CURRENT_TIMESTAMP». Есть ли способ вручную отключить обновление временной метки по особому случаю? (например: обновить запись, чтобы пересмотреть запись в блоге, но не переименовывать ее)MySQL: Обновление записи БЕЗ обновления временной отметки
ответ
Есть ли способ вручную отключить обновление временной метки по особому случаю? (Например: обновление записи пересмотреть запись в блоге, но не возобновлять срок его)
Похоже, вам нужно настроить ограничение по умолчанию, так что он заполняет столбец при вставке только:
DEFAULT CURRENT_TIMESTAMP
Изменение этого только означает, что любые изменения не будут вызывать значение временной метки, которое будет обновляться. IE: Если вы вчера создали блог-блог и исправили опечатку сегодня - дата в столбце будет по-прежнему за вчерашний день.
не использовать временные метки, но отслеживать время вручную.
, если вы действительно хотите, чтобы обновить запись и не обновлять его использование метки времени:
UPDATE `table` SET `timestamp` = `timestamp`, `col` = 'new data' …;
"не использовать метки времени", то почему? – Petah
Я тоже хотел бы ответить на вопрос @ Петаха ... – ryvantage
Они могут представлять только время от 1.1.1970 до 31.12.2037; автоматически обновляется только первый столбец с меткой времени; при восстановлении с резервных временных меток настраиваются на локальный часовой пояс. И, в зависимости от вашего приложения, вы можете не захотеть, чтобы этот столбец был обновлен при запуске оператора обновления sql в вашем backand (вам нужно только обновить временную метку при использовании внешнего интерфейса для редактирования данных) – knittl
Вы можете вручную установить значение столбца его текущее значение в команде обновления:
UPDATE table SET x=y, timestampColumn=timestampColumn WHERE a=b;
Если вы не установите значение в запросе, оно будет обновлено до текущей метки времени в соответствии с определением таблицы.
Хотя это работает, этот подход медленнее, чем удаление правила об обновлении значения. – Mikhail
«медленнее» - сколько? Дольше, чем требуется OP, чтобы удалить магию 'ON UPDATE', добавьте' NOW() 'ко всем его другим запросам и повторите проверку своего приложения? – Andy
Насколько медленнее зависит количество обновляемых строк. Если вы работаете с системными журналами буквально с миллионами строк, это не просто медленно - при каждом выполнении этого запроса он медленный. Я не предлагаю удалить значение 'DEFAULT'; просто 'ON UPDATE' – Mikhail
Чтобы сделать вашу таблицу/метку времени автоматическое обновление:
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. Если хотите, вы можете удалить как null, так и значение по умолчанию.
Если вы изменяете timestemp при обновлении, вы должны принять во внимание, что если значение было обновлено, но не изменено (обновлено значение сохранения), то он не будет обновлять «on update Current_timestemp», и в этой ситуации вы следует установить timestemp вручную
SET LastUpdatedDate=NOW() WHERE
идея пришла здесь: Touch MYSQL record to update TIMESTAMP field
- 1. Получить без временной отметки
- 2. Преобразование временной отметки MYSQL
- 3. Обновление столбца временной отметки MYSQL, но не более, чем сейчас()
- 4. DB2 - инкремент обновления на основе временной отметки
- 5. Изменение, добавление и сравнение временной отметки MySQL
- 6. Отключение форматирования временной отметки в MySQL
- 7. Запрос временной отметки в mysql slow log
- 8. Установка временной отметки Php и Mysql
- 9. Получить последние записи mysql без обновления страницы
- 10. Обновление MySQL временной метки
- 11. Mysql - обновление временной метки
- 12. Форматирование временной отметки
- 13. Преобразование временной отметки
- 14. Teradata - преобразование временной отметки
- 15. Ошибка временной отметки
- 16. Laravel Расчет временной отметки
- 17. Преобразователь временной отметки
- 18. Разрешение временной отметки
- 19. Обновление временной отметки в таблице с REPLACE INTO
- 20. Удаление временной части из столбца временной отметки
- 21. Как сделать разметку временной отметки для вставки и обновления записи в монго?
- 22. обновление переменной MySQL на PHP без обновления
- 23. Обновление обновленной отметки времени?
- 24. Как защитить столбец временной отметки от обновления пользователя
- 25. Cassandra - колонка временной отметки обновления не работает должным образом
- 26. Обновление столбца временной отметки на основе поля даты
- 27. MYSQL сравнение столбцов даты с столбцами временной отметки
- 28. разобрать непризнанный формат временной отметки
- 29. log4j2 PatternLayout Формат временной отметки
- 30. Поддержка временной отметки S/mime
Можете ли вы показать инструкцию SQL для обновления поля для других, я понял это для себя? –