首頁 >資料庫 >mysql教程 >MySQL 表現在可以有多個帶有 CURRENT_TIMESTAMP 的 TIMESTAMP 欄位嗎?

MySQL 表現在可以有多個帶有 CURRENT_TIMESTAMP 的 TIMESTAMP 欄位嗎?

Linda Hamilton
Linda Hamilton原創
2024-11-30 01:47:10378瀏覽

Can MySQL Tables Now Have Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP?

解除了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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn