当前位置:   article > 正文

修改 MySQL update_time 默认值的坑

修改 MySQL update_time 默认值的坑
由于按规范需要对 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;
  • 1
  • 2
  • 3
  • 4
  • 5

表里的数据 update_time 字段真的有 NULL 的情况

由于按规范需要对 update_time 字段需要对它做默认值的设置。

操作步骤是这样的:
  1. 复制一个表出来,表结构如下:

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. 复制数据
insert into test_up2 select * from test_up;
  • 1
  1. 看结果
    update_time 字段 NULL 的就成了 0000-00-00 00:00:00
    这会导致程序出错。
    在这里插入图片描述
所以这么操作有一定坑,一定要注意,可以在操作把原数据空数据不全,避免线上问题。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/268393
推荐阅读
相关标签
  

闽ICP备14008679号