MySQL表字段不能用describe
前言
今天写毕设,我的表有一个字段用来存放描述,于是就用了describe,我项目用了Spring Boot和Mybatis-Plus,当我新增数据时,发现控制台报SQL语句错误,于是我报这个语句放到navicat上运行一遍,发现果然不行,这个时候我发现了一个奇怪的地方:
可以看出,describe高亮,说明是MySQL的关键字或者方法什么鬼的,于是我上网查了一下,果真是MySQL的一个方法,也怪我从没用过,孤陋寡闻了,所以以后描述还是不要用describe了吧
那么问题来了,既然新增语句不行,那么为什么建表的时候就没有出错呢,我带着疑问继续探索
原来如此
经过了一番尝试,我发现了为什么建表的时候没有报错了。
我比较懒,喜欢点点点,于是建表的时候使用的navicat图形化界面操作的,然后它会自动生成一个DDL去执行,我们也可以看到这个语句:
可以看到,这个describe字段是加了``(反单引号)的,这是比较规范的写法,这样就可以防止一些关键字和方法和字段名相撞,那么如果去掉反单引号是不是就会出错呢,那就来试试吧
果然,去掉了反单引号后,describe又高亮了,而且也报错了
那么再把反单引号加上去又能不能成功创建呢
确实成功了
当然,最开始那个INSERT语句里的describe加上反单引号也可以正常新增了
结尾
以后建表的时候还是要注意一下这些关键字和方法,即使可以用反单引号忽略,但还是不要用的比较好
(烦死,又要改字段了)