首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 建表時設定 TIMESTAMP 欄位自動插入目前時間

     編輯:MySQL 綜合教學

MySQL 建表時設定 TIMESTAMP 欄位自動插入目前時間

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

關鍵點說明

  • TIMESTAMP 型別:儲存範圍為 '1970-01-01 00:00:01' UTC 至 '2038-01-19 03:14:07' UTC,佔用 4 位元組。
  • DEFAULT CURRENT_TIMESTAMP:插入新行時若未指定該欄位值,自動填入當前時間戳。
  • NOT NULL:確保欄位永不為空,配合預設值達到自動填充效果。

進階用法:自動更新時間戳

若需在資料更新時同步刷新時間,可加上 ON UPDATE CURRENT_TIMESTAMP:

`UPDATED_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

注意事項

  1. MySQL 5.6.5 以前版本,一張表僅允許一個 TIMESTAMP 欄位使用 DEFAULT CURRENT_TIMESTAMP;5.6.5+ 已移除此限制。
  2. TIMESTAMP 會依時區自動轉換,儲存時轉為 UTC,讀取時轉回會話時區;若需固定時區不轉換,請改用 DATETIME 型別搭配應用層邏輯處理。
  3. 若表結構已存在,可用 ALTER TABLE 修改欄位屬性:
    ALTER TABLE `CONTENT` MODIFY `CURRENT_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved