對於 MySQL 中表中的 TIMESTAMP
和 DATETIME
列,您可以:
-
將當前時間戳指定為默認值
-
分配auto-update值
-
分配以上兩項
注意
Auto-update 表示當該行中任何其他列的值發生更改時,auto-update 列的值會自動更新為當前時間戳。
默認值
要將 TIMESTAMP
和 DATETIME
列的默認值設置為當前時間戳:
CREATE TABLE table_name (
column1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
column2 DATETIME DEFAULT CURRENT_TIMESTAMP
);
請注意,默認值不必是 CURRENT_TIMESTAMP
,您也可以使用固定值:
CREATE TABLE table_name (
column1 TIMESTAMP DEFAULT '2020-01-01 00:00:00',
column2 DATETIME DEFAULT '2020-01-01 00:00:00'
);
Auto-update值
要將 TIMESTAMP
和 DATETIME
列設置為 auto-update:
CREATE TABLE table_name (
column1 TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- default 0
column2 DATETIME ON UPDATE CURRENT_TIMESTAMP -- default NULL
);
注意
如果我們不提供DEFAULT
子句,TIMESTAMP
默認為0
,而DATETIME
默認為NULL
您可以通過指定 NULL
或 NOT NULL
屬性來修改此行為:
CREATE TABLE table_name (
column1 TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP, -- default NULL
column2 DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP -- default 0
);
現在 column1
將具有默認值 NULL
而 column2
將具有默認值 0
。
默認值和Auto-update
要將 TIMESTAMP
和 DATETIME
數據類型列設置為具有默認值和 auto-update:
CREATE TABLE table_name (
column1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
column2 DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
現在column1
和column2
都有一個默認值(當前時間戳),而當對表中的任何其他列進行更改時它們也將是auto-updated(帶有更改時的時間戳)。
相關用法
- MySQL ATAN2方法用法及代碼示例
- MySQL AS用法及代碼示例
- MySQL ABS()用法及代碼示例
- MySQL ATAN2()用法及代碼示例
- MySQL ACOS()用法及代碼示例
- MySQL ABS方法用法及代碼示例
- MySQL AVG()用法及代碼示例
- MySQL ASIN方法用法及代碼示例
- MySQL ATAN方法用法及代碼示例
- MySQL AND用法及代碼示例
- MySQL AES_DECRYPT()用法及代碼示例
- MySQL ADDTIME方法用法及代碼示例
- MySQL ADDDATE方法用法及代碼示例
- MySQL AVG方法用法及代碼示例
- MySQL ATAN()用法及代碼示例
- MySQL ASIN()、ACOS()用法及代碼示例
- MySQL ASCII方法用法及代碼示例
- MySQL ASIN()用法及代碼示例
- MySQL ADDTIME()用法及代碼示例
- MySQL ADDDATE()用法及代碼示例
- MySQL ASCII()用法及代碼示例
- MySQL ACOS方法用法及代碼示例
- MySQL AES_ENCRYPT()用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
注:本文由純淨天空篩選整理自Arthur Yanagisawa大神的英文原創作品 MySQL | Automatic Initialization and updating for TIMESTAMP and DATETIME。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。