mysql timestamp類型 根據當前時間戳更新


注意到這個是因為一次事故。

一個簡單的操作記錄表,只記錄了一個操作人,操作時間,操作結果。

當時為了演示效果,在生產環境中去修改,創建數據。

一頓操作猛如虎之后發現,所有改過的數據的創建時間都變成了當前時間,演示效果更不好了,還破壞了原本的數據。

經過研究發現,當數據類型是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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM