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

如何在 MySQL 中使用 CURRENT_TIMESTAMP 定義多個 TIMESTAMP 欄位?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-31 03:03:02862瀏覽

How Can I Define Multiple TIMESTAMP Columns with CURRENT_TIMESTAMP in MySQL?

在MySQL 中管理CURRENT_TIMESTAMP 以進行建立和更新操作

在MySQL 等關係資料庫管理系統中,維護臨時資訊(例如何時建立或更新記錄)至關重要用於資料完整性和追蹤更改。 MySQL 提供了 CURRENT_TIMESTAMP 子句來自動使用目前系統時間填入 TIMESTAMP 欄位。

但是,當嘗試定義具有多個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 的最新版本,例如MySQL 5.6.25,已經解決了這個限制。在這些版本中,可以定義多個 TIMESTAMP 資料列,並將 CURRENT_TIMESTAMP 作為預設值或更新值。

例如,要建立一個包含兩個TIMESTAMP 列ts_create 和ts_update 的表,並具有所需的行為:

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
);

此語句將成功建立包含TIMESTAMP 列的表,並且它們的值將在記錄建立和更新時分別自動更新為當前系統時間。

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

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