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

MySQL ON UPDATE CURRENT_TIMESTAMP non si aggiorna

Hai provato a utilizzare null per quel campo durante l'aggiornamento?

Potresti anche provare a impostare il valore predefinito su CURRENT_TIMESTAMP , anziché 0000-00-00 00:00:00 .

Tuttavia, ogni volta che voglio avere il tempo di creazione e aggiornamento, utilizzo sempre quanto segue:

...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....

Uso now() , perché è un alias per CURRENT_TIMESTAMP ed è più breve. Alla fine, la struttura della tabella ottiene CURRENT_TIMESTAMP , quindi non preoccuparti.

Il trucco con CREATED field è ricordare di utilizzare null su entrambi i campi per INSERT istruzioni, per UPDATE dichiarazioni non è richiesto:

INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);