Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP wird nicht aktualisiert

Haben Sie versucht, beim Aktualisieren null für dieses Feld zu verwenden?

Sie können auch versuchen, den Standardwert auf CURRENT_TIMESTAMP zu setzen , statt 0000-00-00 00:00:00 .

Trotzdem verwende ich, wann immer ich Erstellungs- und Aktualisierungszeit haben möchte, immer Folgendes:

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

Ich verwende now() , weil es ein Alias ​​für CURRENT_TIMESTAMP ist und es ist kürzer. Am Ende erhält die Tabellenstruktur CURRENT_TIMESTAMP , also mach dir keine Sorgen.

Der Trick mit CREATED Feld ist daran zu denken, in beiden Feldern für INSERT null zu verwenden Anweisungen für UPDATE Anweisungen ist nicht erforderlich:

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