select @@global.sql_mode,@@session.sql_mode
set session sql_mode=no_zero_date;
上面的第二条语句把其它的值都给覆盖了,如何能保留其它值并且开启no_zero_date选项?
如果设置了很多选项,查看的话,是一起全部都显示出来的(如第一个语句),很不方便.如何查看特定的选项是否开启或关闭?

解决方案 »

  1.   


    show variables like '%sql_mode%';
    show global variables like '%sql_mode%';
      

  2.   

    怎么保留其它值并且开启no_zero_date选项呢?
      

  3.   

    set session sql_mode=no_zero_date;
    这样就只修改了sql_mode的参数值,对其他参数没有任何影响。
      

  4.   

    用上面的语句设置完后,我查询的时候select @@global.sql_mode,@@session.sql_mode其它的值的确是没有啊.用workbench在哪里可以查看到呢?
    还有个问题,设置开启后,如何再关闭no_zero_date这个选项呢?
      

  5.   

    mysql的sql_mode的设置方式
    启动mysqld服务器是指定: --sql-mode="modes"
    在选项文件里设置:sql-mode="modes"
    运行时设置全局系统变量:set global sql_mode="modes"  --需要super权限
    运行时设置会话系统变量:set [session] sql_mode="modes"
    可以将sqlmode设为空,mysql将使用编译时默认的行为方式
      

  6.   

    没有好办法,因为 sql_mode 是一个参数,你只能自己分析它的字符串,然后生成新的参数字符串。