創建數據庫時設置自動獲取時間 |
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只會更新第一個。