12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-11-26 22:13:53
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
在my.cnf中设置了sql_mode='STRICT_TRANS_TABLES';却发现还是有非法数据的写入,比如无符号整数字段本来值是0,还可以减,结果当然溢出了,经检查发现存储过程中默认的sql_
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
在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)
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19