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.