【问题标题】:Is possible to have more than 1 sql_mode simultaneously in MySQL?MySQL 中是否可以同时拥有 1 个以上的 sql_mode?
【发布时间】:2015-08-06 23:23:52
【问题描述】:

我试图在 MySQL 上设置两个 sql_modes,但是当我设置第二个时,第一个正在替换:

SET sql_mode=ONLY_FULL_GROUP_BY;

并检查 MySQL 中当前的 sql_mode:

------------------ |选择@@sql_mode | ------------------ |ONLY_FULL_GROUP_BY| ------------------

当我尝试设置另一种模式时(我也想获得 ONLY_FULL_GROUP_BY),我会这样做:

SET sql_mode=PIPES_AS_CONCAT

我再次检查 MySQL 中当前的 sql_mode,但我注意到只设置了 1 个 sql_mode:

------------------ |选择@@sql_mode | ------------------ |PIPES_AS_CONCAT | ------------------

我想得到:

------------------ |选择@@sql_mode | ------------------ |ONLY_FULL_GROUP_BY| ------------------ |PIPES_AS_CONCAT | ------------------

知道发生了什么吗?

我还检查了How can I see the specific value of the sql_mode?SQL Mode

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    您需要将它们都放在引号中,并用, 分隔。否则,当您运行第二个set 命令时,您将覆盖该设置。

    mysql> set sql_mode="PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY";
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like '%sql_mode%';
    +---------------+------------------------------------+
    | Variable_name | Value                              |
    +---------------+------------------------------------+
    | sql_mode      | PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY |
    +---------------+------------------------------------+
    1 row in set (0.00 sec)
    

    【讨论】:

    • 谢谢!。在您回答之前,我尝试了一些类似但没有引号的方法(SET sql_mode=PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY 并没有用,但我认为引号不是必需的)。
    • 很好,我很困惑这甚至意味着什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多