ON UPDATE CURRENT_TIMESTAMP 要謹慎勾選啊


出現問題

creat_time 和pay_time 時間相差太遠,后台業務詳情展示的時間明顯出現問題。
查看數據庫,發現某一creat_time時間段的pay_time被改成了同一時間相鄰幾秒鍾,直接想到是系統修改,不可能是人為。
再結合改的時間,聯想到一個定時任務調用接口的時間,該接口會改變這個表記錄的一個字段,好,整活結束。
數據庫pay_time字段下根據當前時間戳更新被打了勾,打了勾,打了勾。
打勾的作用就是ON UPDATE 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;

解決問題

navicat上直接去掉勾選根據當前時間戳更新
結束(可憐的是以前保存的時間找不回來了)。
哎,天天的被這些操作坑,還讓產品追着改bug,着實可憐。


免責聲明!

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



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