加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL存储过程中的sql_mode难题怎么处理

发布时间:2023-09-14 13:35:24 所属栏目:MySql教程 来源:
导读:这篇文章主要介绍MySQL存储过程中的sql_mode问题怎么处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在my.cnf中设置了sql_mode='STRICT_TRANS_TABLES';却发现还是有非法数据的

这篇文章主要介绍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问题怎么处理”这篇文章的所有内容,感谢各位的阅读!

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章