Mysql 相同的代码在不同机器上执行之后,调用有的出错有的不出错。
今天遇到个奇怪的问题,同一个存储过程在不同的电脑上执行之后,调用的时候有的报错有的不报错,错误原因是将string转为int的时候。
google之后发现时sql-mode的问题,使用sqlyog的时候默认为STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION这两个模式,然后在类型转换的时候就会报错,
当使用xshell中执行之后,mode为空,这个时候时候类型转换就不会报错。这个里记录一下。
一般情况下这个sql-mode推荐设置为严格模式,有些特殊情况下可以利用不同设置来简化代码的编写,但出错的几率就提高了。
在sqlyog中如果想临时将sql-mode设置成空,又不想修改软件配置,那可以用SET sql_mode = ''来设置一下就好了。
sql-mode还有很多其他的模式,具体的看mysql的文档吧,链接:http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

浙公网安备 33010602011771号