От MySQL 5.6.5 можете да използвате DATETIME
тип с динамична стойност по подразбиране:
CREATE TABLE foo (
creation_time DATETIME DEFAULT CURRENT_TIMESTAMP,
modification_time DATETIME ON UPDATE CURRENT_TIMESTAMP
)
Или дори комбинирайте двете правила:
modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Справка:
http://dev.mysql .com/doc/refman/5.7/en/timestamp-initialization.html
http://optimize -this.blogspot.com/2012/04/datetime-default-now-finally-available.html
Преди 5.6.5, трябва да използвате TIMESTAMP
тип данни, който автоматично се актуализира всеки път, когато записът бъде променен. За съжаление обаче само един автоматично актуализиран TIMESTAMP
поле може да съществува за всяка таблица.
CREATE TABLE mytable (
mydate TIMESTAMP
)
Вижте:http://dev.mysql.com/doc /refman/5.1/en/create-table.html
Ако искате да попречите на MySQL да актуализира стойността на времевата марка при UPDATE
(така че се задейства само при INSERT
) можете да промените определението на:
CREATE TABLE mytable (
mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)