• ADADADADAD

    MySQL存储过程中的sql_mode问题怎么处理[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:13:53

    作者:文/会员上传

    简介:

    在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)

    MySQL存储过程中的sql_mode问题怎么处理.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlsqlmode