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