栏目导航
热点推荐
- MySQL数据库优化总结
- mysql排序的妙用(类似置顶)
- 优化MySQL的数据库性能的八种方
- MySQL配置文件my.cnf中文版
- linux下mysql命令
- 如何用MySQL-Front远程连接MySql
- 如何修改MySQL 5.1 data文件夹路
- Linux mysql安装修改root密码服
- MySQL Server 5.0安装教程(图解)
- PHP中的MYSQL常用函数
- mysql常见错误提示及解决方法
- MySQL常见错误问答!
阅览排行
MySQL存储过程中的sql_mode问题
www.jz123.cn 2010-12-20 来源: 站长家园 责任编辑(袁袁) 我要投递新闻
在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 插入优化 下一篇:linux下mysql命令