Heim >Datenbank >MySQL-Tutorial >Welche Einschränkungen gab es bei der Verwendung von CURRENT_TIMESTAMP mit TIMESTAMP-Spalten in MySQL vor Version 5.6.5?
Historisch gesehen gab es in MySQL-Versionen vor 5.6.5 war eine Einschränkung, die eine Tabelle darauf beschränkte, nur eine TIMESTAMP-Spalte mit entweder DEFAULT zu haben CURRENT_TIMESTAMP- oder ON UPDATE CURRENT_TIMESTAMP-Klausel. Diese Einschränkung erstreckte sich bereits bei ihrer Einführung im Jahr 2008 auf Ganzzahlen vom Typ INT, BIGINT und SMALLINT.
Diese Einschränkung ergab sich aus Bedenken hinsichtlich der Legacy-Implementierung, die eine spezifische Implementierung für die CURRENT_TIMESTAMP-Funktionalität erforderlich machten.
Betrachten Sie beispielsweise die folgende Tabellendefinition, die versucht, zwei zu definieren TIMESTAMP-Spalten mit dem CURRENT_TIMESTAMP-Wert:
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 ) ENGINE=INNODB;
Diese Definition würde zu folgendem Fehler führen:
Fehlercode: 1293<br>Falsche Tabellendefinition; Es kann<br>nur eine TIMESTAMP-Spalte mit<br>CURRENT_TIMESTAMP in DEFAULT oder ON geben<br>UPDATE-Klausel
Dieser Fehler deutete darauf hin, dass die Tabellendefinition gegen die oben genannte Einschränkung verstoßen hat.
Trotz der technischen Grundlage für diese Einschränkung ist die Das MySQL-Team erkannte die Unannehmlichkeiten. Anschließend wurde die Einschränkung in MySQL 5.6.5 (veröffentlicht am 10. April 2012) aufgehoben.
Im Änderungsprotokoll für dieses Update hieß es:
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. In addition, these clauses now can be used with DATETIME column definitions.
Das obige ist der detaillierte Inhalt vonWelche Einschränkungen gab es bei der Verwendung von CURRENT_TIMESTAMP mit TIMESTAMP-Spalten in MySQL vor Version 5.6.5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!