注意到這個是因為一次事故。
一個簡單的操作記錄表,只記錄了一個操作人,操作時間,操作結果。
當時為了演示效果,在生產環境中去修改,創建數據。
一頓操作猛如虎之后發現,所有改過的數據的創建時間都變成了當前時間,演示效果更不好了,還破壞了原本的數據。
經過研究發現,當數據類型是timestamp的時候,多了個根據當前時間更新
也就是下圖的這個東西,將創建時間勾選了根據當前時間更新導致的問題。
所以呢。。
如果設置了CURRENT_TIMESTAMP為默認值,勾選了根據當前時間更新,表示每次更新這條數據的時候,該字段都會更新成當前時間
不勾選則表示當插入數據的時候,該字段默認值為當前時間
可以根據這個特性來生成【創建時間】和【更新時間】兩個字段,且不需要代碼來維護
CREATE TABLE `mytest` ( `text` varchar(255) DEFAULT '' COMMENT '內容', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;