sql >> Databasteknik >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP uppdateras inte

Har du testat att använda null för det fältet när du uppdaterar?

Du kan också prova att ställa in standardvärdet till CURRENT_TIMESTAMP istället för 0000-00-00 00:00:00 .

Ändå, när jag vill ha tid att skapa och uppdatera använder jag alltid följande:

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

Jag använder now() , eftersom är ett alias för CURRENT_TIMESTAMP och den är kortare. I slutet får tabellstrukturen CURRENT_TIMESTAMP , så oroa dig inte.

Tricket med CREATED fältet är att komma ihåg att använda null i båda fälten för INSERT uttalanden, för UPDATE uttalanden krävs det inte:

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


  1. Använda Microsoft DiskSpd för att testa ditt lagringsundersystem

  2. Talk slides:Partitioneringsförbättringar i PostgreSQL 11

  3. Mysql SELECT inuti UPPDATERING

  4. Hur fixar man olöst extern symbol på grund av MySql Connector C++?