Überwindung der Beschränkung mehrerer CURRENT_TIMESTAMP-Spalten in MySQL
Oft ist es wünschenswert, sowohl die Erstellungs- als auch die Aktualisierungszeitstempel von Daten in Datenbanktabellen zu verfolgen . In MySQL kann das Schlüsselwort CURRENT_TIMESTAMP verwendet werden, um eine Zeitstempelspalte automatisch mit dem aktuellen Datum und der aktuellen Uhrzeit zu füllen. MySQL hat jedoch eine Einschränkung, dass nur eine CURRENT_TIMESTAMP-Spalte in der CREATE-Anweisung einer Tabelle angegeben werden kann.
Behebung des Fehlers
Der Fehler, der beim Versuch, eine Tabelle zu erstellen, generiert wird mit mehreren CURRENT_TIMESTAMP-Spalten lautet:
ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Dieser Fehler weist darauf hin, dass MySQL die Tabellendefinition nicht verarbeiten kann, da die Beschränkung auf mehrere CURRENT_TIMESTAMP-Spalten verletzt wird.
Lösung
Um diese Einschränkung zu überwinden, kann eine neuere Version von MySQL (5.6.25 oder höher) verwendet werden. In MySQL 5.6.25 und höher wurde die Beschränkung auf mehrere CURRENT_TIMESTAMP-Spalten entfernt. Dadurch können Sie eine Tabelle mit mehreren TIMESTAMP-Spalten definieren, die automatisch mit dem aktuellen Datum und der aktuellen Uhrzeit aktualisiert werden.
Zum Beispiel ist die folgende Tabellendefinition in MySQL 5.6.25 und höher gültig:
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 );
In dieser Tabellendefinition sind sowohl die Spalten ts_create als auch ts_update TIMESTAMP-Spalten, wobei CURRENT_TIMESTAMP als Standardwert für Einfüge- bzw. Aktualisierungsvorgänge festgelegt ist. Dadurch wird sichergestellt, dass die Zeitstempel automatisch mit dem aktuellen Datum und der aktuellen Uhrzeit aktualisiert werden, wenn Datensätze erstellt oder aktualisiert werden.
Das obige ist der detaillierte Inhalt vonKönnen MySQL-Tabellen mehr als eine CURRENT_TIMESTAMP-Spalte haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!