Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP in MySQL definieren?

Wie kann ich mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP in MySQL definieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 03:03:021007Durchsuche

How Can I Define Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

Verwaltung von CURRENT_TIMESTAMP in MySQL für Erstellungs- und Aktualisierungsvorgänge

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.

Lösung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn