已解决Invalid default value for ‘create_time’

已解决Invalid default value for ‘create_time‘_解决方法


文章目录

  • 报错问题
  • 解决方法
  • 声明


报错问题

之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。
问题描述如下:

已解决Invalid default value for ‘create_time‘_数据库_02

已解决Invalid default value for ‘create_time‘_解决方法_03

解决方法

解决方法如下

已解决Invalid default value for ‘create_time‘_解决方法_04


方案一:

重装 MySQL 数据库,版本选择 5.7 或者 5.7 以上版本

方案二:
这个错误的主要原因,是因为给了时间字段的列默认值一个 CURRENT_TIMESTAMP 默认值,而这个默认值在低版本的 MySQL 中是不支持的,因此就出现了题目中的这个报错,所以呢,把每个时间字段的默认值修改一下即可,比如:

DROP TABLE IF EXISTS `tb_config`;

CREATE TABLE `tb_config` (
  `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置项的名称',
  `config_value` varchar(200) NOT NULL DEFAULT '' COMMENT '配置项的值',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`config_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

改为

DROP TABLE IF EXISTS `tb_config`;

CREATE TABLE `tb_config` (
  `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置项的名称',
  `config_value` varchar(200) NOT NULL DEFAULT '' COMMENT '配置项的值',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`config_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

方案三:
如果不会执行 SQL 语句,那你就自己创建表,把字段一个个的创建了,这种方式也是可以的。

已解决Invalid default value for ‘create_time‘_数据库_05


一个一个的把字段名称和类型设置进去就可以了。

声明

解决方法参考网络,如有侵权联系我删除