ON_UPDATE

mysql数据库时间字段CURRENT_TIME问题

两盒软妹~` 提交于 2019-12-11 13:55:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、背景 进入产品迭代阶段,修改数据库字段是难免的。除了我们能够想到的,新增字段,一定要设置为“允许为空”或者设置“默认值”,当涉及到mysql的时间字段时,也要格外小心。 下面是报错: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp Query 二、分析问题 这是一个数据库表的create_time字段,出现值:'0000-00-00 00:00:00'。 查看了数据库,最新记录create_time字段时间都是正确的,某个时间之前的记录create_time字段时间都是'0000-00-00 00:00:00'。 先更新错误的历史记录字段值。 这个问题之前也碰到过,看来这个坑很容易出现了。 三、 重现问题 新建一个表 CREATE TABLE `a` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 插入两条数据 INSERT INTO a