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.