首頁  >  文章  >  資料庫  >  MySQL 表可以有多個 CURRENT_TIMESTAMP 欄位嗎?

MySQL 表可以有多個 CURRENT_TIMESTAMP 欄位嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 11:31:03841瀏覽

Can MySQL tables have more than one CURRENT_TIMESTAMP column?

克服 MySQL 中多個 CURRENT_TIMESTAMP 欄位的限制

通常需要追蹤資料庫表中資料的建立和更新時間戳。在 MySQL 中,CURRENT_TIMESTAMP 關鍵字可用於自動以目前日期和時間填入時間戳記列。但是,MySQL 有一個限制,就是在資料表的 CREATE 語句中只能指定一個 CURRENT_TIMESTAMP 資料列。

解決錯誤

嘗試建立表格時產生的錯誤具有多個CURRENT_TIMESTAMP 欄位的是:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

此錯誤表明MySQL 無法處理表定義,因為它違反了對多個CURRENT_TIMESTAMP 欄位的限制。

解決方案

要克服此限制,可以使用較新版本的 MySQL(5.6.25 或更高版本)。在 MySQL 5.6.25 及更高版本中,對多個 CURRENT_TIMESTAMP 欄位的限制已被刪除。這可讓您定義一個具有多個 TIMESTAMP 欄位的資料表,這些資料列會自動更新為目前日期和時間。

例如,以下表定義在MySQL 5.6.25 及更高版本中有效:

CREATE TABLE `msgs` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `msg` VARCHAR(256),
    `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

在此表定義中,ts_create 和ts_update 列都是TIMESTAMP 列,並分別將CURRENT_TIMESTAMP 設定為插入和更新操作的預設值。這可確保在建立或更新記錄時,時間戳會自動更新為目前日期和時間。

以上是MySQL 表可以有多個 CURRENT_TIMESTAMP 欄位嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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