Mysql
 sql >> Base de données >  >> RDS >> Mysql

Définir NOW() comme valeur par défaut pour le type de données datetime ?

Depuis MySQL 5.6.5, vous pouvez utiliser le DATETIME tapez avec une valeur dynamique par défaut :

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

Ou même combiner les deux règles :

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Référence :
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

Avant 5.6.5, vous devez utiliser le TIMESTAMP type de données, qui se met automatiquement à jour chaque fois que l'enregistrement est modifié. Malheureusement, un seul TIMESTAMP mis à jour automatiquement le champ peut exister par table.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

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

Si vous souhaitez empêcher MySQL de mettre à jour la valeur d'horodatage sur UPDATE (pour qu'il ne se déclenche que sur INSERT ) vous pouvez changer la définition en :

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)