Quiero tener una tabla con dos columnas TIMESTAMP
. Una columna para realizar un seguimiento de cuándo se creó el registro y otra para realizar un seguimiento de cuándo se modificó. Quiero que estos valores sean manejados por la base de datos. No quiero que mi capa de aplicación tenga que pensarlo.One Mysql Table with Multiple TIMESTAMP Columns
sé que si usted tiene una columna con una TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
o un ON UPDATE CURRENT_TIMESTAMP
no se puede tener otra columna TIMESTAMP
. Puede usar DATETIME
, pero no hay forma de predeterminarlo, que yo sepa, fuera de un disparador.
He encontrado que can have multiple TIMESTAMP
columns dejando cada uno sin DEFAULT
o ON UPDATE
e insertando NULL
cuando se crea el registro, haciendo que cada uno tenga la fecha y hora actual. A partir de ese momento, la primera columna se actualizará automáticamente.
Esto funciona fantásticamente pero me deja con una sensación graciosa. Como este puede ser un error y podría ser parcheado en cualquier momento. Si esta es la forma en que se supone que debe funcionar, que así sea. Seguiré alegremente mi camino. ¿Alguien puede decirme si esta es la mejor manera de hacer esto o debería usar activadores?
Con MySQL 5.6.5 múltiples marcas de tiempo se pueden controlar de forma independiente en una tabla, por lo que las reglas para esto han cambiado. – TJChambers