Heim  >  Artikel  >  Datenbank  >  Können mehrere TIMESTAMP-Spalten CURRENT_TIMESTAMP in MySQL haben?

Können mehrere TIMESTAMP-Spalten CURRENT_TIMESTAMP in MySQL haben?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 21:26:29909Durchsuche

Can Multiple TIMESTAMP Columns Have CURRENT_TIMESTAMP in MySQL?

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!

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