Mysql
 sql >> Datenbank >  >> RDS >> Mysql

NOW() als Standardwert für datetime-Datentyp festlegen?

Ab MySQL 5.6.5 können Sie den DATETIME verwenden Typ mit einem dynamischen Standardwert:

CREATE TABLE foo (
    creation_time      DATETIME DEFAULT   CURRENT_TIMESTAMP,
    modification_time  DATETIME ON UPDATE CURRENT_TIMESTAMP
)

Oder kombinieren Sie sogar beide Regeln:

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Referenz:
http://dev.mysql .com/doc/refman/5.7/en/timestamp-initialization.html
http://optimieren -this.blogspot.com/2012/04/datetime-default-now-finally-available.html

Vor 5.6.5 müssen Sie den TIMESTAMP verwenden Datentyp, der automatisch aktualisiert wird, wenn der Datensatz geändert wird. Leider aber nur ein automatisch aktualisierter TIMESTAMP Feld kann pro Tabelle existieren.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

Siehe:http://dev.mysql.com/doc /refman/5.1/en/create-table.html

Wenn Sie verhindern möchten, dass MySQL den Zeitstempelwert bei UPDATE aktualisiert (so dass es nur bei INSERT ausgelöst wird ) können Sie die Definition ändern in:

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)