sql >> Database >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP wordt niet bijgewerkt

Heb je geprobeerd om null voor dat veld te gebruiken bij het updaten?

U kunt ook proberen de standaardwaarde in te stellen op CURRENT_TIMESTAMP , in plaats van 0000-00-00 00:00:00 .

Niettemin, wanneer ik tijd wil hebben voor het maken en bijwerken, gebruik ik altijd het volgende:

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

Ik gebruik now() , omdat het een alias is voor CURRENT_TIMESTAMP en het is korter. Aan het einde krijgt de tabelstructuur CURRENT_TIMESTAMP , dus maak je geen zorgen.

De truc met CREATED veld is om te onthouden dat u null op beide velden moet gebruiken voor INSERT verklaringen, voor UPDATE verklaringen is het niet vereist:

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


  1. Krijg volledige MySQL-queryreeks bij invoegen of bijwerken

  2. Oplossen staat niet in GROUP BY-fout in mysql-query

  3. Database-patchsets verkrijgen

  4. SQL INSERT INTO uit meerdere tabellen