由于按规范需要对 update_time 字段需要对它做默认值的设置
现在有一个原始的表是这样的
CREATE TABLE `test_up` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',`update_time` datetime default null COMMENT '操作时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表里的数据 update_time 字段真的有 NULL 的情况
由于按规范需要对 update_time 字段需要对它做默认值的设置。
操作步骤是这样的:
- 复制一个表出来,表结构如下:
CREATE TABLE `test_up2` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '操作时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 复制数据
insert into test_up2 select * from test_up;
- 看结果
update_time 字段 NULL 的就成了 0000-00-00 00:00:00
这会导致程序出错。