无法禁用 ONLY_FULL_GROUP_BY
Can't disable ONLY_FULL_GROUP_BY
我在 MySQL 5.7.14 上遇到 ONLY_FULL_GROUP_BY 的问题,我似乎无法禁用它,即使我已经设置SQL 模式。
我已经设置了两个@@sql_mode通过运行宁这个命令删除ONLY_FULL_GROUP_BY:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
我还更新了 my.cnf 文件,通过设置 sql-mode 参数将其排除。
如果我 运行 select @@sql_mode
我可以看到 ONLY_FULL_GROUP_BY 不再设置了。
然而,当我 运行 我的存储过程时,我仍然收到此错误:
1055 Expression #1 of SELECT list is not in GROUP BY clause and contains
nonaggregated column 'product_id' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我在这里错过了什么? SP 是否忽略 sql-模式?
我不想修改 SP 代码,因为它是从第 3 方模块(对于 Magento)安装的,如果我们想升级,那会导致问题。
这是我本地开发服务器的 WAMP。
对于遇到同样问题的任何人,事实证明 sql 模式与存储过程一起存储,所以即使我已经正确更改了 sql 模式,它也没有'根本不更新 SP。为了解决这个问题,我刚刚删除并重新创建了存储过程,同时设置了新的 sql 模式。现在可以正常使用了!
修复此问题并重新创建存储过程
它正在工作。
使用your_schema_name
;
删除过程 IF EXISTS your_sp_name
;
分隔符 $$
使用 your_schema_name
$$
创建过程 your_sp_name
(IN your_input
VARCHAR(50))
开始
-- 此处为 sp 数据
结束$$
分隔符;
我在 MySQL 5.7.14 上遇到 ONLY_FULL_GROUP_BY 的问题,我似乎无法禁用它,即使我已经设置SQL 模式。
我已经设置了两个@@sql_mode通过运行宁这个命令删除ONLY_FULL_GROUP_BY:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
我还更新了 my.cnf 文件,通过设置 sql-mode 参数将其排除。
如果我 运行 select @@sql_mode
我可以看到 ONLY_FULL_GROUP_BY 不再设置了。
然而,当我 运行 我的存储过程时,我仍然收到此错误:
1055 Expression #1 of SELECT list is not in GROUP BY clause and contains
nonaggregated column 'product_id' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
我在这里错过了什么? SP 是否忽略 sql-模式?
我不想修改 SP 代码,因为它是从第 3 方模块(对于 Magento)安装的,如果我们想升级,那会导致问题。
这是我本地开发服务器的 WAMP。
对于遇到同样问题的任何人,事实证明 sql 模式与存储过程一起存储,所以即使我已经正确更改了 sql 模式,它也没有'根本不更新 SP。为了解决这个问题,我刚刚删除并重新创建了存储过程,同时设置了新的 sql 模式。现在可以正常使用了!
修复此问题并重新创建存储过程 它正在工作。
使用your_schema_name
;
删除过程 IF EXISTS your_sp_name
;
分隔符 $$
使用 your_schema_name
$$
创建过程 your_sp_name
(IN your_input
VARCHAR(50))
开始
-- 此处为 sp 数据
结束$$
分隔符;