In relationalen Datenbankverwaltungssystemen wie MySQL ist die Pflege zeitlicher Informationen, etwa wenn Datensätze erstellt oder aktualisiert werden, von entscheidender Bedeutung für Datenintegrität und Nachverfolgung von Änderungen. MySQL stellt die CURRENT_TIMESTAMP-Klausel bereit, um TIMESTAMP-Spalten automatisch mit der aktuellen Systemzeit zu füllen.
Wenn Sie jedoch versuchen, eine Tabelle mit mehreren TIMESTAMP-Spalten zu definieren, jede mit CURRENT_TIMESTAMP als Standard- oder Aktualisierungswert, kann es vorkommen, dass Sie auf Folgendes stoßen: Folgender Fehler:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Dieser Fehler verhindert, dass Sie die Tabelle mit dem gewünschten Verhalten separater Erstellungs- und Aktualisierungszeitstempelspalten erstellen.
Neueste Versionen von MySQL, B. MySQL 5.6.25, haben diese Einschränkung behoben. In diesen Versionen ist es möglich, mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP als Standard- oder Aktualisierungswert zu definieren.
Um beispielsweise eine Tabelle mit zwei TIMESTAMP-Spalten, ts_create und ts_update, mit dem gewünschten Verhalten zu erstellen:
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 Anweisung erstellt erfolgreich die Tabelle mit beiden TIMESTAMP-Spalten und ihre Werte werden bei der Datensatzerstellung bzw. -aktualisierung automatisch mit der aktuellen Systemzeit aktualisiert.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP in MySQL definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!