对于 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
