首頁 >資料庫 >mysql教程 >在 MySQL 5.6.5 版本之前,使用 CURRENT_TIMESTAMP 與 TIMESTAMP 欄位有哪些限制?

在 MySQL 5.6.5 版本之前,使用 CURRENT_TIMESTAMP 與 TIMESTAMP 欄位有哪些限制?

Barbara Streisand
Barbara Streisand原創
2024-12-15 16:20:13857瀏覽

What Were the Restrictions on Using CURRENT_TIMESTAMP with TIMESTAMP Columns in MySQL Before Version 5.6.5?

5.6.5 之前的MySQL 版本中DEFAULT 中包含CURRENT_TIMESTAMP 或ON UPDATE 子句的TIMESTAMP 欄位的限制

歷史上,在5.SQL.5 之前的資料列的限制版本中,有是一項限制,限製表只能有一個TIMESTAMP列,其中任一DEFAULT CURRENT_TIMESTAMP 或 ON UPDATE CURRENT_TIMESTAMP 子句。此限制在 2008 年首次引入 INT、BIGINT 和 SMALLINT 整數時就擴展到了它們。

此限制源自於遺留實作問題,需要對 CURRENT_TIMESTAMP 功能進行特定實作。

錯誤訊息和相關問題

例如,考慮下面的表定義,它嘗試定義兩個具有 CURRENT_TIMESTAMP 值的 TIMESTAMP列:

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;

此定義將導致以下錯誤:

錯誤代碼:1293<br>表定義不正確; <br>只能有一個TIMESTAMP 列,<br>DEFAULT 或ON<br>UPDATE 子句UPDATE子句<p></p>此錯誤表示表定義違反了上述限制。 <h3></h3>解除限制<p></p>儘管有技術基礎對於這個限制,MySQL 團隊認識到它的不便。隨後,在 MySQL 5.6.5(2012 年 4 月 10 日發布)中,取消了該限制。 <p></p>本次更新的變更日誌指出:<pre class="brush:php;toolbar:false">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.

以上是在 MySQL 5.6.5 版本之前,使用 CURRENT_TIMESTAMP 與 TIMESTAMP 欄位有哪些限制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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