Ответ 1
Здесь все, что вам нужно знать. Короче говоря, я думаю, что это должно сделать это:
ALTER TABLE `mytable`
CHANGE `mydatefield` `mydatefield`
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Я использую timestamp для MySQL 5.x(с PHP) для запоминания событий. Во время разработки мне пришлось обновить таблицу запросом, который меняет что-то во всех столбцах. Временная метка была тогда reset до текущего времени.
Как изменить временную метку только на вставках, а не на обновлениях или заменить?
Здесь все, что вам нужно знать. Короче говоря, я думаю, что это должно сделать это:
ALTER TABLE `mytable`
CHANGE `mydatefield` `mydatefield`
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Я предлагаю использовать DATETIME для этого столбца. Он не изменится при обновлении записи.
Для меня я использую TIMESTAMP для отслеживания, когда последний раз касался записи, хотя я вообще не избегаю его использования.
Вы можете использовать значение по умолчанию для этого поля и не включать его в запрос на вставку или обновление.
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Очень хорошая документация здесь для отметки времени.