Geben Sie den Befehl SHOW CREATE TABLE whatever
ein
Sehen Sie sich dann die Tabellendefinition an .
Es hat wahrscheinlich eine Zeile wie diese
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
drin. DEFAULT CURRENT_TIMESTAMP
bedeutet, dass jeder INSERT
ohne explizite Zeitstempeleinstellung verwendet die aktuelle Uhrzeit. Ebenso ON UPDATE CURRENT_TIMESTAMP
bedeutet, dass jede Aktualisierung ohne expliziten Zeitstempel zu einer Aktualisierung des aktuellen Zeitstempelwerts führt.
Sie können dieses Standardverhalten beim Erstellen Ihrer Tabelle steuern.
Wenn die Zeitstempelspalte von Anfang an nicht korrekt erstellt wurde, können Sie sie ändern.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Dadurch werden sowohl die INSERT- als auch die UPDATE-Operationen für die Tabelle automatisch zur Aktualisierung Ihrer Timestamp-Spalte veranlasst. Wenn Sie whatevertable
aktualisieren möchten ohne den Zeitstempel zu ändern, also
dann müssen Sie diese Art von Update herausgeben.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Das funktioniert mit TIMESTAMP
und DATETIME
Säulen. (Vor MySQL-Version 5.6.5 funktionierte es nur mit TIMESTAMP
s) Wenn Sie TIMESTAMP
verwenden s werden Zeitzonen berücksichtigt:Auf einem korrekt konfigurierten Servercomputer werden diese Werte immer in UTC gespeichert und beim Abrufen in die Ortszeit übersetzt.