导入 SQL 时出现 Invalid default value for 'create_time' 报错解决方法

问题描述

十三在 GitHub 仓库中开源了一个 Spring Boot 技术栈开发的 My-Blog 项目:git

由于功能比较多,数据的存储就选择了 MySQL 数据库,该项目的表结构也放到了仓库中,方便你们运行和使用这个开源博客项目,期间一直有人提到题目中的这个问题,在导入 SQL 语句到 MySQL 数据库中的时候会报以下错误: Invalid default value for 'create_time' ,错误截图以下:github

因为不止一个朋友在群里或者仓库里给我提这个问题,所以今天就整理一下解决方案。数据库

方案一

重装 MySQL 数据库,版本选择 5.7 或者 5.7 以上版本,这个方案有些粗暴,不喜欢粗暴的朋友能够继续往下看。3d

方案二

这个错误的主要缘由,是由于给了时间字段的列默认值一个 CURRENT_TIMESTAMP 默认值,而这个默认值在低版本的 MySQL 中是不支持的,所以就出现了题目中的这个报错,因此呢,把每一个时间字段的默认值修改一下便可,好比:code

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;

改成blog

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;

就齐活了。开发

固然,也有错误示范,好比我让别人改默认值,有个小老弟就改为了以下这个样子:get

但愿你们不要犯一样的错误。博客

方案三

以上两种方案你们应该都看的懂,为了防止某些小老弟太秀,SQL 语句都不会改,又有了第三个方案,表结构开源了,字段你们应该也都清楚,若是不会执行 SQL 语句,那你就本身建立表,把字段一个个的建立了,这种方式也是能够滴。it

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

总结

好的,此次的问题答疑就到此结束啦,若是写成这样仍是没解决你的问题,我建议你换一个项目学学,我真的太难了。

My-Blog 的 GitHub 仓库地址是 https://github.com/ZHENFENG13/My-Blog,Gitee 地址是 https://gitee.com/zhenfeng13/My-Blog喜欢的朋友能够关注一下。

相关文章
相关标签/搜索