首頁  >  文章  >  資料庫  >  如何在 MySQL 中使用 CURRENT_TIMESTAMP 管理多個 TIMESTAMP 欄位?

如何在 MySQL 中使用 CURRENT_TIMESTAMP 管理多個 TIMESTAMP 欄位?

Susan Sarandon
Susan Sarandon原創
2024-11-01 02:53:28761瀏覽

How to Manage Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

使用CURRENT_TIMESTAMP 管理多個TIMESTAMP 欄位

在MySQL 中,使用CURRENT_TIMESTAMP 預設值定義不正確」 ; DEFAULT 或ON UPDATE 子句中只能有一個帶有CURRENT_TIMESTAMP 的TIMESTAMP 欄位。 「為了克服這個限制,請在最近的MySQL 版本(例如5.6.25)中考慮以下方法:

解決方案:

修改表定義如下:

<code class="sql">CREATE TABLE `msgs` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `msg` VARCHAR(256),
    `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `ts_update` TIMESTAMP NOT NULL,
    CONSTRAINT UPDATE_ON_CHANGE_ts_update
        FOREIGN KEY (`ts_update`) REFERENCES `msgs` (`ts_create`)
        ON DELETE SET NULL
        ON UPDATE CURRENT_TIMESTAMP
)</code>

在此修改後的架構中:

  • ts_create 保留為具有CURRENT_TIMESTAMP 預設值的常規TIMESTAMP 列。約束的TIMESTAMP 欄位.
  • 在ts_update 和ts_create 之間建立外鍵約束,允許從ts_create 到ts_update 級聯更新。每當修改ts_create 時,ts_update 欄位都會更新為目前時間戳記。

以上是如何在 MySQL 中使用 CURRENT_TIMESTAMP 管理多個 TIMESTAMP 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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