Heim > Datenbank > MySQL-Tutorial > Können MySQL-Tabellen mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP haben?

Können MySQL-Tabellen mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP haben?

Patricia Arquette
Freigeben: 2024-11-30 08:35:11
Original
214 Leute haben es durchsucht

Can MySQL Tables Have Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP?

Nur ​​eine TIMESTAMP-Spalte zulässig mit CURRENT_TIMESTAMP in der DEFAULT- oder ON UPDATE-Klausel

Die historischen Codebeschränkungen von MySQL beschränkten Tabellen darauf, nur eine TIMESTAMP-Spalte zu haben CURRENT_TIMESTAMP in der DEFAULT- oder ON UPDATE-Klausel. Diese Einschränkung wurde jedoch inzwischen in neueren Versionen von MySQL aufgehoben.

Legacy-Fehler:

Beachten Sie die folgende Tabellendefinition:

CREATE TABLE `foo` (
  `ProductID` INT(10) UNSIGNED NOT NULL,
  `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Nach dem Login kopieren
Nach dem Login kopieren

Der Versuch, diese Tabelle zu erstellen, würde zu folgendem Fehler führen:

Error Code : 1293
Incorrect table definition; there can
be only one TIMESTAMP column with
CURRENT_TIMESTAMP in DEFAULT or ON
UPDATE clause
Nach dem Login kopieren

Auflösung in MySQL 5.6.5 und höher:

Ab MySQL 5.6.5 wurde diese Einschränkung entfernt. Jede TIMESTAMP- oder DATETIME-Spalte kann jetzt eine beliebige Kombination aus DEFAULT CURRENT_TIMESTAMP- und ON UPDATE CURRENT_TIMESTAMP-Klauseln haben.

Gemäß den Versionshinweisen zu MySQL 5.6.5:

Previously, at most one TIMESTAMP column per table could be
automatically initialized or updated to the current date and time.
This restriction has been lifted. Any TIMESTAMP column definition can
have any combination of DEFAULT CURRENT_TIMESTAMP and ON UPDATE
CURRENT_TIMESTAMP clauses.
Nach dem Login kopieren

Daher wird die Tabellendefinition bereitgestellt im Legacy-Fehler kann nun erfolgreich erstellt werden:

CREATE TABLE `foo` (
  `ProductID` INT(10) UNSIGNED NOT NULL,
  `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKönnen MySQL-Tabellen mehrere TIMESTAMP-Spalten mit CURRENT_TIMESTAMP haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage