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

MySQL ON UPDATE CURRENT_TIMESTAMP opdateres ikke

Har du prøvet at bruge null for det felt, når du opdaterer?

Du kan også prøve at indstille standardværdien til CURRENT_TIMESTAMP i stedet for 0000-00-00 00:00:00 .

Ikke desto mindre, når jeg vil have oprettelses- og opdateringstid, bruger jeg altid følgende:

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

Jeg bruger now() , fordi er et alias for CURRENT_TIMESTAMP og den er kortere. I slutningen får tabelstrukturen CURRENT_TIMESTAMP , så bare rolig.

Tricket med CREATED felt er at huske at bruge null på begge felter for INSERT erklæringer for UPDATE udsagn er det ikke påkrævet:

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


  1. Fejlkode:1136 Kolonneantal stemmer ikke overens med værdiantallet i række 1) inde i sp

  2. MED KONTROL TILFØJ BEGRÆNSNING efterfulgt af KONTROLBEGRÆNSNING vs. TILFØJ KONSTRAINT

  3. Sådan omdøbes et kolonnenavn eller tabelnavn i SQL Server - SQL Server / T-SQL selvstudie del 36

  4. Overskriv MySQL-tabeller med AWS-lim