mysql創建/更新數據庫時設置自動獲取時間

創建數據庫時設置自動獲取時間

MYSQL中TIMESTAMP類型可以設定默認值,就像其他類型一樣。

  • CURRENT_TIMESTAMP:第一次插入記錄時獲取時間戳
  • CURRENT_TIMESTAMP on UPDATE CURRENT_TIMESTAMP:每次更新記錄都更新時間戳
create TABLE IF NOT EXISTS T_WorkLogInfo(
userId char(18) NOT NULL,
onDate TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP,
offDate TIMESTAMP null DEFAULT CURRENT_TIMESTAMP on UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(userId)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
對創建好的數據庫設置自動獲取時間
alter table t_lineinfo
MODIFY COLUMN onDate TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP,
MODIFY COLUMN offDate TIMESTAMP null DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

tips

  • 設置CURRENT_TIMESTAMP默認值後,插入記錄還是更新記錄都不需要維護該字段,該字段完全由MySQL維護,但如果使用datetime字段,則需要手動構造時間更新,比如類似now()等。
  • 對CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,有個特殊情況,假如你更新的字段值(UPDATE)沒有變化時,MySQL將會忽略更新操作,所以,時間戳也不會改變。另外,如果有多個CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP列,那麼MySQL只會更新第一個。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章