Я хочу иметь одну таблицу с двумя столбцами TIMESTAMP
. Один столбец для отслеживания времени создания записи, а другой - для отслеживания времени изменения. Я хочу, чтобы эти значения обрабатывались базой данных. Я не хочу, чтобы уровень моего приложения думал об этом.
Я знаю, что если у вас есть столбец TIMESTAMP
с DEFAULT CURRENT_TIMESTAMP
или ON UPDATE CURRENT_TIMESTAMP
, у вас не может быть другого TIMESTAMP столбец. Вы можете использовать
DATETIME
, но мне известно о невозможности установить его по умолчанию вне триггера.
Я обнаружил, что вы можете иметь несколько столбцов TIMESTAMP
, оставив каждый без DEFAULT
или ON UPDATE
и вставив NULL
при создании записи, в результате чего каждому будет присвоена текущая временная метка. С этого момента первый столбец будет обновляться автоматически.
Это работает фантастически, но оставляет у меня забавное чувство. Как будто это может быть ошибка, и ее можно исправить в любое время. Если так оно и должно работать, пусть будет так. Я весело продолжу свой путь. Может ли кто-нибудь сказать мне, лучший ли это способ сделать это или мне следует использовать триггеры?