操作mysql数据库数据,当需要每天重复时,就自然想到写程序,那么最简单的办法,就是用shell脚本操作。
但是经常会发生的事情就是,mysql中都测试过的sql语句,到了shell中就频频报语法错误。这是为什么呢?
ERROR 1064 (42000) at line 19: 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 ‘’,’’)’ at line 1
当发生报错后,最简单的排错就是删掉原理报错信息的sql语句,缩小语法错误的sql的范围,定位出错的sql,然后慢慢就能总结出,mysql和shell之间的区别。
注意事项:
1、mysql中的表名、列名都可以用``包起
但这样在shell中会引起语言歧义发生语法错误,因此需要将sql中所有的`去掉。
2、\符号的转义
当sql中想要表达的就是\这个字符,则mysql会用\来转义表示普通字符
当shell脚本时 需要\\才能转义表达出普通字符\
3、不要太相信报错信息的定位,因为它没有那么精准,可能是报错语句的上下附近好几行的错,所以还是要回到上面说的,尽量逐条测试sql语句,定位出错sql。