MySQL CURRENT_TIMESTAMP beim Erstellen und Aktualisieren
Beim Definieren einer MySQL-Tabelle ist es wünschenswert, Zeitstempel einzubeziehen, um die Erstellung und Änderung von Datensätzen zu verfolgen . Beim Versuch, zwei TIMESTAMP-Felder mit CURRENT_TIMESTAMP als Standardwert oder bei Aktualisierungswerten zu definieren, kann jedoch ein Fehler auftreten.
Fehlermeldung
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Ursache
MySQL-Versionen vor 5.6.25 erlaubten nur die Definition einer einzelnen TIMESTAMP-Spalte mit CURRENT_TIMESTAMP als Standard- oder Aktualisierungswert.
Lösung
In MySQL-Versionen 5.6.25 und höher ist es möglich, mehrere TIMESTAMP-Spalten zu definieren, jede mit ihrer eigenen CURRENT_TIMESTAMP-Einstellung. Ab MySQL 8.0 wurde diese Einschränkung vollständig entfernt. Daher sollte für Versionen 5.6.25 und höher die folgende Tabellendefinition korrekt funktionieren:
CREATE TABLE `msgs` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `msg` VARCHAR(256), `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )
Diese Definition erstellt eine Tabelle mit zwei TIMESTAMP-Feldern, ts_create und ts_update, die automatisch mit dem aktuellen aktualisiert wird Zeitstempel bei der Erstellung bzw. Aktualisierung des Datensatzes.
Das obige ist der detaillierte Inhalt vonKönnen mehrere TIMESTAMP-Spalten CURRENT_TIMESTAMP in MySQL haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!