解除了CURRENT_TIMESTAMP 限制的一個TIMESTAMP 欄位
在先前版本的MyMySQL 中,一張表格只能有一個TIMESTAMP 資料列,其CURRENT_TIMESTAMP 值位於DEFAULT 或ON UPDATE 子句。嘗試建立包含多個此類列的表會導致錯誤。
限制性子句
下面的語句說明了容易出錯的結構:
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;
錯誤回傳:
Error Code : 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
歷史原因
此限制在歷史上源自於程式碼遺留原因。然而,它在最近的 MySQL 版本中被取消。
刪除限制
2012 年 4 月 10 日的 MySQL 5.6.5 中刪除了此限制。 發行說明state:
「以前,每個表最多可以自動初始化或更新一個TIMESTAMP 欄位任何TIMESTAMP 欄位定義都可以有DEFAULT CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP 子句的任意組合。此外,這些子句現在現在可以與DATETIME 列定義一起使用。 >影響
MySQL 中的這項變更允許更大的表格設計的靈活性。更改。
以上是MySQL 表現在可以有多個帶有 CURRENT_TIMESTAMP 的 TIMESTAMP 欄位嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!