Geef het commando SHOW CREATE TABLE whatever
Kijk dan naar de tabeldefinitie .
Het heeft waarschijnlijk een regel als deze
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
in het. DEFAULT CURRENT_TIMESTAMP
betekent dat elke INSERT
zonder een expliciete tijdstempelinstelling gebruikt de huidige tijd. Evenzo, ON UPDATE CURRENT_TIMESTAMP
betekent dat elke update zonder een expliciete tijdstempel resulteert in een update naar de huidige tijdstempelwaarde.
U kunt dit standaardgedrag bepalen bij het maken van uw tabel.
Of, als de tijdstempelkolom in de eerste plaats niet correct is gemaakt, kunt u deze wijzigen.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Hierdoor worden zowel INSERT- als UPDATE-bewerkingen op de tabel automatisch bijgewerkt om uw tijdstempelkolom bij te werken. Als je whatevertable
wilt updaten zonder de tijdstempel te wijzigen, dat wil zeggen,
dan moet je dit soort update uitgeven.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Dit werkt met TIMESTAMP
en DATETIME
kolommen. (Vóór MySQL versie 5.6.5 werkte het alleen met TIMESTAMP
s) Wanneer u TIMESTAMP
. gebruikt s, wordt rekening gehouden met tijdzones:op een correct geconfigureerde servermachine worden die waarden altijd opgeslagen in UTC en bij het ophalen vertaald naar lokale tijd.