【 使用环境 】 测试环境
OceanBase 4.3.5.3
为什么这个执行失败了,我都切换了模式,也重新开过会话了
看看你的存储过程,看提示是select后面出现了不少group by的列吧
sql_mode,不是已经改了删除了ONLY_FULL_GROUP_BY
不好意思,我对存储过程也不熟悉。试了下你的脚本,好像有问题,执行不了。
学习了
没有表应该执行不了吧,主要是这个存储过程在低版本可以用,在我提供的版本数据库版本有不可以,是不是还是什么没有配置。测试了一些group by sql也可以执行的
这个问题不太明白,跟各位大佬学习了。
CREATE TABLE tbl1(name VARCHAR(20), city VARCHAR(50), age INT);
INSERT INTO tbl1 VALUES (‘Alex’,‘BeiJing’,20), (‘Alex’,‘Shanghai’,25);
– 禁用 ONLY_FULL_GROUP_BY:能执行,city 可能是 BeiJing 或 Shanghai(不确定)
SELECT name, city, MAX(age) FROM tbl1 GROUP BY name;
– 启用 ONLY_FULL_GROUP_BY:报错
– 正确写法 1:GROUP BY 包含 city
SELECT name, city, MAX(age) FROM tbl1 GROUP BY name, city;
– 正确写法 2:显式接受不确定值
SELECT name, ANY_VALUE(city), MAX(age) FROM tbl1 GROUP BY name;
** 禁用 ONLY_FULL_GROUP_BY 的作用
更宽松,允许 SELECT 中出现未出现在 GROUP BY 中的非聚合列。
** 启用 ONLY_FULL_GROUP_BY 的作用
更严格、更符合 SQL 标准,避免“每组返回哪一行数据”的不确定性。
有点没看懂,首先现在的环境已经去掉ONLY_FULL_GROUP_BY。调整成为了STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER。结果执行不了。报上图的错误
。但是在我另外严格低版本环境4.2.3.5上面是可以执行的。你们版本变化是不是改了什么
后来找到原因了吗
蹲蹲
没有遇到过
非常有深度的一篇好文,点赞支持。
很好
支持
66666666666
厉害了
支持