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