在 MySQL 中,若需某欄位在資料插入時自動記錄目前時間戳,可使用 TIMESTAMP 型別並設定預設值為 CURRENT_TIMESTAMP。這在建立審計欄位(如 created_at)時非常實用。
DROP TABLE IF EXISTS `CONTENT`;
CREATE TABLE `CONTENT` (
`ID` CHAR(20) NOT NULL,
`CURRENT_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
若需在資料更新時同步刷新時間,可加上 ON UPDATE CURRENT_TIMESTAMP:
`UPDATED_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
TIMESTAMP 欄位使用 DEFAULT CURRENT_TIMESTAMP;5.6.5+ 已移除此限制。TIMESTAMP 會依時區自動轉換,儲存時轉為 UTC,讀取時轉回會話時區;若需固定時區不轉換,請改用 DATETIME 型別搭配應用層邏輯處理。ALTER TABLE 修改欄位屬性:ALTER TABLE `CONTENT` MODIFY `CURRENT_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;