博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL创建表时遇到的几个错误
阅读量:6852 次
发布时间:2019-06-26

本文共 1229 字,大约阅读时间需要 4 分钟。

Q1

创建表时的表结构如下:

CREATE TABLE `hack` (      `Id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,      `CreateTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',      PRIMARY KEY (`Id`)) ENGINE=InnoDB AUTO_INCREMENT=1211 DEFAULT CHARSET=utf8 COMMENT='hack';

从console导入进去的时候,报错

> ERROR 1067 (42000): Invalid default value for 'CreateTime'

然后打出变量

> `>` show variables like 'sql_mode';
Variable_name Value
sql_mode ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION

发现是这两个变量导致了报错:NO_ZERO_IN_DATE & NO_ZERO_DATE

百度了一下,了解到

  • NO_ZERO_DATE

    在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。
  • NO_ZERO_IN_DATE

    在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插   入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。

    修改变量:

> `>` set session sql_mode='ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION'

Q2

报错

ERROR 1101 (42000): BLOB, TEXT, GEOMETRY or JSON column 'Ovalue' can't have a default value

实际上,textblob字段不允许有缺省值,这是由于strict mode导致的,只要在my-template.ini中去掉

sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

或linux下在my.conf中去掉

sql_mode=""

就行了。

参考

转载地址:http://mufyl.baihongyu.com/

你可能感兴趣的文章
拥抱商业虚拟化生态,XSKY获VMware Ready Storage认证
查看>>
《中国人工智能学会通讯》——8.13 强化学习
查看>>
最新研究:电脑病毒或可通过声音进行传播
查看>>
Xamarin公司开发顾问Nish Anil:移动跨平台已成趋势
查看>>
Amica保险用SAS欺诈分析解决方案提升客户满意度
查看>>
“智慧交通”向“智慧出行”转变
查看>>
缺乏支持!Caffe深度学习框架未来堪忧
查看>>
十个强大的DevOps基础设施自动化工具,不容错过
查看>>
Windows 10商店更新应用报错“0XD00002B8”怎么解决?
查看>>
你要不要升级Windows 10 TH2?先看看它的十大变化
查看>>
大数据项目如何落地之路线图探讨
查看>>
这个15美元的小设备可劫持你的鼠标控制你的电脑
查看>>
太好玩了!用好Windows 10虚拟桌面
查看>>
Linux基础命令介绍十三:启动流程
查看>>
传统存储or云存储 你会用那种确保数据安全?
查看>>
使用极简的Min浏览器消除web噪音
查看>>
9个实战及面试常用Shell脚本编写
查看>>
网能行业产品命名的中国风
查看>>
如何在Linux中找出所有在线主机的IP地址
查看>>
如何在web范围内实现微服务负载均衡
查看>>