记录MySQL修改字段点击保存报1064语法错误的一种可能性及处理过程
一、问题现状
本地研发环境的MySQL8.0,使用navicat11正常连接后选中一张表,并点击设计表,然后直接点击“保存”或者修改字段后再点击“保存”都会报错1064语法错误。同一个库中其他表按前面的步骤操作也没有问题。尝试连接其他数据库并修改表信息还是没有问题。问度娘,度娘也不愿意给个合适的解决方案,都是一些常规的语法错误,然后奔溃了一阵子后决定仔细研究研究。
二、问题排查
1、分析报错信息
仔细分析一下报错信息,一般而言,报错日志里面会将的很清楚哪里出了问题的。
[SQL]
ALTER TABLE `bus_secret` DEFAULT CHARACTER SET DEFAULT;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT' at line 1
仔细一看,里面有“DEFAULT CHARACTER SET DEFAULT”,应该时设置字符集的时候出问题了,但是没搞这个呀,甚至都没修改过任何信息,直接点的保存,怎么会出现这个?怎么会出现这个!怎么会出现这个!!!啊~
2、点击“SQL预览”
点击“SQL预览”发现诡异的一幕,居然有这么一条执行语句:
ALTER TABLE `bus_secret` DEFAULT CHARACTER SET DEFAULT;
莫名奇妙,不知所以然,从哪儿来的也不知道。然后本能的想删掉它~我删。。。我删。。。我扇!这玩意不是用来删的。
再问问度娘,度娘告诉我,这个语句有问题呀,得设置指定字符集才行!!!所以,我复制了这句,新建了个查询窗口,粘贴进去,改造了一下,如下
ALTER TABLE `bus_secret` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
点击“运行”,执行成功!
3、验证
重新打开表设计,再去看“SQL预览”,发现里面没有原来那条执行语句了,而且,问题顺利解决了。再去点击保存,或者修改字段信息后点击保存都畅通无阻,一切恢复平静。
4、总结
遇事不要慌,作为一个程序员,这种事儿很常见。在此做个记录,一方面方便自己后续查阅,另一方面也是希望能够帮到和我遇到同样问题的小伙伴,欢迎大佬批评指正,不喜勿喷哦~
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
