sql >> Base de Datos >  >> RDS >> Mysql

¿Establecer NOW () como valor predeterminado para el tipo de datos de fecha y hora?

A partir de MySQL 5.6.5, puede usar DATETIME escriba con un valor predeterminado dinámico:

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

O incluso combinar ambas reglas:

modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Referencia:
http://dev.mysql .com/doc/refman/5.7/en/timestamp-initialization.html
http://optimize -this.blogspot.com/2012/04/datetime-default-ahora-finalmente-disponible.html

Antes de 5.6.5, debe usar el TIMESTAMP tipo de dato, que se actualiza automáticamente cada vez que se modifica el registro. Desafortunadamente, sin embargo, solo un TIMESTAMP actualizado automáticamente el campo puede existir por tabla.

CREATE TABLE mytable (
  mydate TIMESTAMP
)

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

Si desea evitar que MySQL actualice el valor de la marca de tiempo en UPDATE (para que solo se active en INSERT ) puede cambiar la definición a:

CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)