修改 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;

表里的数据 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. 复制数据
insert into test_up2 select * from test_up;
  1. 看结果
    update_time 字段 NULL 的就成了 0000-00-00 00:00:00
    这会导致程序出错。
    在这里插入图片描述
所以这么操作有一定坑,一定要注意,可以在操作把原数据空数据不全,避免线上问题。

相关推荐

  1. C# 类型默认

    2024-03-15 23:22:01       24 阅读
  2. Android Audio实战——音量默认修改(一)

    2024-03-15 23:22:01       29 阅读
  3. 如何修改MySQL默认端口

    2024-03-15 23:22:01       59 阅读
  4. 修改android11默认桌面

    2024-03-15 23:22:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 23:22:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 23:22:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 23:22:01       87 阅读
  4. Python语言-面向对象

    2024-03-15 23:22:01       96 阅读

热门阅读

  1. 简单实现接口自动化测试(基于python)

    2024-03-15 23:22:01       31 阅读
  2. 【leetcode】点名

    2024-03-15 23:22:01       37 阅读
  3. c++中的动态内存分配

    2024-03-15 23:22:01       37 阅读
  4. 【力扣】121. 买卖股票的最佳时机

    2024-03-15 23:22:01       39 阅读
  5. 24计算机考研调剂 | 大连海事大学轮机工程学院

    2024-03-15 23:22:01       42 阅读