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

问题描述

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

图片描述

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

图片描述

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

方案一

重装 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 语句都不会改,又有了第三个方案,表结构开源了,字段大家应该也都清楚,如果不会执行 SQL 语句,那你就自己创建表,把字段一个个的创建了,这种方式也是可以滴。

图片描述

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

总结

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

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

推荐阅读更多精彩内容

  • 我说从linux服务器转存的sql文件,在本地运行时发生这样的错误,我就很烦啊,各种百度,我气得就一个一个的表执行...
    s_Turtle阅读 8,072评论 0 1
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    片刻_ApacheCN阅读 16,924评论 0 84
  • 原文:https://my.oschina.net/liuyuantao/blog/751438 查询集API 参...
    josh94阅读 3,355评论 0 8
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,313评论 0 30
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 3,695评论 0 19
  • 开始做督导时(开始社协督导班实习和机构内部督导),很多人说不知道自己可以被督导些什么,所以希望督导可以给自己带...
    玲儿2007阅读 248评论 2 1
  • 能和多年好友相聚,吃个火锅,互相调侃,大概是件非常幸福的事了。感谢时间让我们在成长的路上都还记住了对方,没有就此一...
    小辣狗阅读 548评论 0 0
  • 人生目标关键词: 健康*美丽、提升&工作、家庭&人际、财富 纪念日: 无 每日一诗: 老当益壮,宁移白首之心,穷且...
    芙蓉照水阅读 42评论 0 0
  • 我们已经踏入成年人的世界,但有时却又不愿承认自己是大人,因为总想抓住过去的尾巴不放。但总要松开的。即使是不情愿,我...
    花荣x阅读 140评论 0 1