问题描述:今天使用MySQL新建了一个表。在插入数据时,报了语法错误。由于使用的是 mabits 代码自动生成工具,并且自己没有改写其中的sql语句。所以确信,sql语句部分应该没有可能写错。因此马上意识到可能表里面的字段出了问题。于是查看表里面的字段,发现有一个desc 字段和MySQL中降序的关键字冲突了。然后顺手把这个字段改写成了describe。到这里,以为问题就应该解决了。谁料想,又冲突了。describe也是MySQL的关键字。于是上网搜了一下MySQL 关键字表。
如下是MySQL关键字表
MySQL 5.5 保留关键字
MySQL 允许一些大家常用到的关键字使用英文 ` 号引起来使用,如:
上述表中的关键字,在设计数据库时,应当尽量避免这些不必要的冲突。
问题解决:把关键字替换成了非关键字。
经验总结:通过程序操作数据库时,mysql会解析你代码里的sql语句,如果操作的字段中含有关键字,你写的sql语句就可能被错误解释了,sql语句也就出错了。数据库种类还是比较多的。多多少少都有点关键字,每个版本还略有不同。在设计数据库表的时候,应当设计的字段名特殊一点,尽量长一点,避免和关键字冲突。