Автоматическое обновление столбца временных меток MYSQL, даже если изменений нет?

#mysql #timestamp

#mysql #временная метка

Вопрос:

У меня есть столбец update_date в таблице, а тип — timestamp . Я установил значение deault с помощью выпадающего меню phpmyadmin на CURRENT_TIMESTAMP . Но позже, когда я когда-либо запускаю sql UPDATE x SET… он обновляет столбец временных меток, если только есть изменения в любом из столбцов. Чего я хотел бы добиться, так это того, что независимо от того, есть изменение или нет, устанавливается текущее время при каждом запуске sql обновления. Есть ли какой-либо способ сделать это в mysql или мне нужно явно устанавливать update_date при каждом вызове update?

Спасибо

Ответ №1:

Вам необходимо явно обновить столбец. Из руководства MySQL, свойства временных меток:

Столбец временных меток автоматического обновления, если он есть, автоматически обновляется до текущей временной метки, когда значение любого другого столбца в строке изменяется с его текущего значения. Если для всех остальных столбцов установлены их текущие значения, столбец временных МЕТОК не изменяется.Автоматическое обновление не применяется, если столбцу временных МЕТОК явно присвоено значение, отличное от NULL.

Акцент мой.

Комментарии:

1. У меня есть только один столбец временных меток в строке. Итак, вы говорите, что я должен изменить значение по умолчанию на null, а затем явно обновлять его при каждом запуске sql, или я могу оставить тип по умолчанию как CURRENT_TIMESTAMP?

2. Другое дело, что когда я запускаю этот код, ничего не обновляется «UPDATE x SET update_date = NOW() » из mysql_query? в чем причина?

3. Есть ли способ преодолеть это? [Чтобы обновить временную метку, даже если фактические значения не обновлялись]