Code Bye

求帮助 mysql的strict mode问题

现在布置一个老程序,原因是之前程序里的sql都是不规范的,int型的字段有insert “” 插入空字符串的写法,于是在新服务器上就报错了,不能把‘’自动转化成0,装的是mysql 5.7, my.ini里也配置了sql-mode,但是仍然报错。sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”   。感觉像没有效果一样,哪位高手能提供一下解决方案,首先这个程序肯定是可以运行的,在另一台早就布好的服务器上运行没有问题。
解决方案

40

只要不是工作在严格模式下,非法的值mysql都会自动转换成mysql认为最合适的值,通常对数字来说,会是0 或类型对应上下限,对文本来说,通常会是空。sql语句执行是没有问题的,只是会返回一个warning,但sql语句还是成功执行的。无论能否工作在严格模式下,都可以用 insert ignore 代替 insert ,用update ignore 代替 update ,在非严格模式下,仍然会返回警告,严格模式下,也能成功执行,并返回一个warning, 无论怎么样,除非你输入正确的值,否则,warning是少不了的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助 mysql的strict mode问题