您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页导入SQL时出现Invaliddefaultvalueforcreate_time报错解决方法

导入SQL时出现Invaliddefaultvalueforcreate_time报错解决方法

来源:华佗小知识
导⼊SQL时出现Invaliddefaultvalueforcreate_time报错解决⽅法

推荐⼀下本⼈近期维护的开源项⽬:

问题描述

⼗三在 GitHub 仓库中开源了⼀个 Spring Boot 技术栈开发的 项⽬:

因为功能⽐较多,数据的存储就选择了 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 语句,那你就⾃⼰创建表,把字段⼀个个的创建了,这种⽅式也是可以滴。

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

总结

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

除注明转载/出处外,皆为作者原创,欢迎转载,但未经作者同意必须保留此段声明,且在⽂章页⾯明显位置给出原⽂链接,否则保留追究法律责任的权利。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务