Giv kommandoen SHOW CREATE TABLE whatever
Så se på tabeldefinitionen .
Den har sandsynligvis en linje som denne
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
i det. DEFAULT CURRENT_TIMESTAMP
betyder, at enhver INSERT
uden en eksplicit tidsstempelindstilling bruger den aktuelle tid. Ligeledes ON UPDATE CURRENT_TIMESTAMP
betyder, at enhver opdatering uden et eksplicit tidsstempel resulterer i en opdatering til den aktuelle tidsstempelværdi.
Du kan kontrollere denne standardadfærd, når du opretter din tabel.
Eller hvis tidsstempelkolonnen ikke blev oprettet korrekt i første omgang, kan du ændre den.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Dette vil få både INSERT og UPDATE operationer på tabellen til automatisk at opdatere din tidsstempelkolonne. Hvis du vil opdatere whatevertable
uden at ændre tidsstemplet, dvs.
så skal du udsende denne form for opdatering.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Dette virker med TIMESTAMP
og DATETIME
kolonner. (Før MySQL version 5.6.5 fungerede det kun med TIMESTAMP
s) Når du bruger TIMESTAMP
s, der tages højde for tidszoner:på en korrekt konfigureret servermaskine gemmes disse værdier altid i UTC og oversættes til lokal tid ved hentning.