当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL Automatic Initialization and updating for TIMESTAMP and DATETIME用法及代码示例


对于 MySQL 中表中的 TIMESTAMP DATETIME 列,您可以:

  • 将当前时间戳指定为默认值

  • 分配auto-update值

  • 分配以上两项

注意

Auto-update 表示当该行中任何其他列的值发生更改时,auto-update 列的值会自动更新为当前时间戳。

默认值

要将 TIMESTAMPDATETIME 列的默认值设置为当前时间戳:

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值

要将 TIMESTAMPDATETIME 列设置为 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

您可以通过指定 NULLNOT 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 将具有默认值 NULLcolumn2 将具有默认值 0

默认值和Auto-update

要将 TIMESTAMPDATETIME 数据类型列设置为具有默认值和 auto-update:

CREATE TABLE table_name (
  column1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  column2 DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

现在column1column2都有一个默认值(当前时间戳),而当对表中的任何其他列进行更改时它们也将是auto-updated(带有更改时的时间戳)。

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | Automatic Initialization and updating for TIMESTAMP and DATETIME。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。