Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Definir NOW() como valor padrão para o tipo de dados datetime?


A partir do MySQL 5.6.5, você pode usar o DATETIME digite com um valor padrão dinâmico:
CREATE TABLE foo (
    creation_time      DATETIME DEFAULT   CURRENT_TIMESTAMP,
    modification_time  DATETIME ON UPDATE CURRENT_TIMESTAMP
)

Ou até mesmo combinar as duas regras:
modification_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Referência:
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

Antes de 5.6.5, você precisa usar o TIMESTAMP tipo de dados, que é atualizado automaticamente sempre que o registro é modificado. Infelizmente, no entanto, apenas um TIMESTAMP atualizado automaticamente campo pode existir por tabela.
CREATE TABLE mytable (
  mydate TIMESTAMP
)

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

Se você quiser evitar que o MySQL atualize o valor do timestamp em UPDATE (para que seja acionado apenas em INSERT ) você pode alterar a definição para:
CREATE TABLE mytable (
  mydate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)