MySQL存储过程中的sql_mode难题怎么处理
这篇文章主要介绍MySQL存储过程中的sql_mode问题怎么处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在my.cnf中设置了sql_mode='STRICT_TRANS_TABLES'; 却发现还是有非法数据的写入,比如无符号整数字段本来值是0,还可以减,结果当然溢出了,经检查发现存储过程中默认的sql_mode并没有使用global的sql_mode,测试如下: CREATE PROCEDURE p_test() BEGIN select @@session.sql_mode,@@global.sql_mode; END; call p_test(); +--------------------+---------------------+ | @@session.sql_mode | @@global.sql_mode | +--------------------+---------------------+ | | STRICT_TRANS_TABLES | +--------------------+---------------------+ 1 row in set (0.00 sec) CREATE PROCEDURE p_test1() BEGIN set sql_mode=@@global.sql_mode; select @@session.sql_mode,@@global.sql_mode; END; call p_test1(); +---------------------+---------------------+ | @@session.sql_mode | @@global.sql_mode | +---------------------+---------------------+ | STRICT_TRANS_TABLES | STRICT_TRANS_TABLES | +---------------------+---------------------+ 1 row in set (0.00 sec) 以上是“MySQL存储过程中的sql_mode问题怎么处理”这篇文章的所有内容,感谢各位的阅读! (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |