Mysql
 sql >> Database >  >> RDS >> Mysql

Impostare NOW() come valore predefinito per il tipo di dati datetime?

A partire da MySQL 5.6.5, puoi usare DATETIME digitare con un valore predefinito dinamico:

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

O anche combinare entrambe le regole:

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Riferimento:
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

Prima della 5.6.5, è necessario utilizzare il TIMESTAMP tipo di dati, che si aggiorna automaticamente ogni volta che il record viene modificato. Sfortunatamente, tuttavia, solo un TIMESTAMP aggiornato automaticamente campo può esistere per tabella.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

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

Se vuoi impedire a MySQL di aggiornare il valore del timestamp su UPDATE (in modo che si attivi solo su INSERT ) puoi modificare la definizione in:

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)