Ge kommandot SHOW CREATE TABLE whatever
Titta sedan på tabelldefinitionen .
Den har förmodligen en sådan här rad
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
i det. DEFAULT CURRENT_TIMESTAMP betyder att någon INSERT utan en explicit tidsstämpelinställning använder den aktuella tiden. Likaså ON UPDATE CURRENT_TIMESTAMP betyder att varje uppdatering utan en explicit tidsstämpel resulterar i en uppdatering av det aktuella tidsstämpelvärdet.
Du kan styra detta standardbeteende när du skapar din tabell.
Eller, om tidsstämpelkolumnen inte skapades korrekt från början, kan du ändra den.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Detta gör att både INSERT- och UPDATE-operationerna i tabellen automatiskt uppdaterar din tidsstämpelkolumn. Om du vill uppdatera whatevertable utan att ändra tidsstämpeln, det vill säga
då måste du utfärda den här typen av uppdatering.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Detta fungerar med TIMESTAMP och DATETIME kolumner. (Före MySQL version 5.6.5 fungerade det bara med TIMESTAMP s) När du använder TIMESTAMP s, tidszoner beaktas:på en korrekt konfigurerad servermaskin lagras dessa värden alltid i UTC och översätts till lokal tid vid hämtning.