SQLYog执行SQL脚本提示:错误代码: 1067 - Invalid default value for '数据库表'查询:解决办法

Posted Tracy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLYog执行SQL脚本提示:错误代码: 1067 - Invalid default value for '数据库表'查询:解决办法相关的知识,希望对你有一定的参考价值。

强烈建议:完全卸载当前版本mysql,重新安装5.6及以上版本

完全卸载方法:https://jingyan.baidu.com/article/3d69c551611290f0ce02d77b.html

卸载完之后记得删除C:\\ProgramData下的隐藏文件MySQL

这是我在网上查阅多方资料,尝试无数次,踩了很多坑之后得到的最优解决办法!

至于网上修改sql_mode之类的办法,亲测无效,可能和我代码有关,不做赘述!

出现该错误原因:MySQL版本不同,导致5.6版本之前和之后的语法有很大不同,我尝试过改语法,虽然最后改成功了,但效果不是很好。

导致出错代码部分:

CREATE TABLE `msg` (
  `id` bigint(20) NOT NULL COMMENT \'主键\',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \'创建时间\',
  `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP COMMENT \'修改时间\',
  `status_id` tinyint(3) unsigned NOT NULL DEFAULT \'1\' COMMENT \'状态(1有效, 0无效)\',
  `sort` int(11) NOT NULL DEFAULT \'1\' COMMENT \'排序\',
  `msg_type` tinyint(3) NOT NULL DEFAULT \'1\' COMMENT \'短信类型(1系统消息,2其他)\',
  `msg_title` varchar(255) NOT NULL COMMENT \'短信标题\',
  `msg_text` text COMMENT \'短信内容\',
  `is_time_send` tinyint(3) unsigned NOT NULL DEFAULT \'0\' COMMENT \'是否定时发送(1是,0否)\',
  `send_time` datetime DEFAULT NULL COMMENT \'发送时间\',
  `is_send` tinyint(3) unsigned NOT NULL DEFAULT \'0\' COMMENT \'是否已发送(1是;0否)\',
  `is_top` tinyint(3) unsigned NOT NULL DEFAULT \'0\' COMMENT \'是否置顶(1是;0否)\',
  `back_remark` varchar(255) DEFAULT NULL COMMENT \'后台备注\',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=\'站内信息表\';

注意代码中标红的地方,5.6版本之前使用的是timestamp,之后使用的是datetime,它们俩的区别具体看如下链接:

https://www.cnblogs.com/mxwz/p/7520309.html

 

以上是关于SQLYog执行SQL脚本提示:错误代码: 1067 - Invalid default value for '数据库表'查询:解决办法的主要内容,如果未能解决你的问题,请参考以下文章

sqlyog错误代码1045

sqlyog之excel数据导入方法

sqlyog怎么取消每次打开都要还原会话

SQLyog连接数据库 提示错误plugin caching_sha2_password could not be loaded

Zabbix删除使用agent监控的主机出现SQL执行错误问题

Zabbix删除使用agent监控的主机出现SQL执行错误问题