當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。