项目开发阶段,有童鞋的程序一直在报错却找不到原因,经过我们一系列的排查,结果原因是我引起的。原因其实很简单,我建立了一张mysql数据库表,使用了“describe”做为列名。导致了一个insert语句报错。
上网查资料后我们发现“describe”是一个mysql的关键字,不可做为列名。但这张表建立已经有好几天了,为何之前的sql语句都没有报错呢?查询了之前写的sql,发现列名是这样的格式:xxx.describe,也就是“表名.列名”这样的格式。
mysql的很多关键字平时不怎么用,并不熟悉,所以很有可能把关键字做为列名来用,引起不必要的错误。
结论:建立数据库表时,最好避开mysql关键字,采取例如user_describe这样带下划线的列名可以有效地避开关键字。另外,在写sql语句时,最好采取“表名.列名”这样的格式