Одна таблица Mysql с несколькими столбцами TIMESTAMP

Я хочу иметь одну таблицу с двумя столбцами TIMESTAMP . Один столбец для отслеживания времени создания записи, а другой - для отслеживания времени изменения. Я хочу, чтобы эти значения обрабатывались базой данных. Я не хочу, чтобы уровень моего приложения думал об этом.

Я знаю, что если у вас есть столбец TIMESTAMP с DEFAULT CURRENT_TIMESTAMP или ON UPDATE CURRENT_TIMESTAMP , у вас не может быть другого TIMESTAMP столбец. Вы можете использовать DATETIME , но мне известно о невозможности установить его по умолчанию вне триггера.

Я обнаружил, что вы можете иметь несколько столбцов TIMESTAMP , оставив каждый без DEFAULT или ON UPDATE и вставив NULL при создании записи, в результате чего каждому будет присвоена текущая временная метка. С этого момента первый столбец будет обновляться автоматически.

Это работает фантастически, но оставляет у меня забавное чувство. Как будто это может быть ошибка, и ее можно исправить в любое время. Если так оно и должно работать, пусть будет так. Я весело продолжу свой путь. Может ли кто-нибудь сказать мне, лучший ли это способ сделать это или мне следует использовать триггеры?

61
задан Josh Johnson 24 January 2018 в 18:00
поделиться