gpt4 book ai didi

MySQL - 出现 1140 错误...这与 sql_mode=only_full_group_by 不兼容,但已禁用

转载 作者:行者123 更新时间:2023-11-29 17:48:14 24 4
gpt4 key购买 nike

我对此有点困惑。我之前使用过 mysql 5.7x,并且我总是能够通过从 mysql 配置中的 sql_modes 中删除 ONLY_GROUP_BY 来解决此问题。然而,今天我似乎无法这样做,即使将其从 sql_modes 设置中删除也不能阻止我收到此错误。

我知道导致错误的原因,并且我知道有一种解决方法可以添加到 SQL 中,但是我没有时间修复应用程序中导致此错误的数百个查询。

mysql.cnf 中的 SQLMode 设置:

sql_mode = " ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然后通过运行查询来确认:

SELECT @@SQL_MODE;

结果:

'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

但是,当运行存储过程时,它仍然会产生错误:

SQLSTATE[42000]: Syntax error or access violation: 1140 In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'schema.emp.company_id'; this is incompatible with sql_mode=only_full_group_by

有谁知道为什么 mySQL 似乎无法识别该选项已被禁用?

我正在运行 5.7.21-0ubuntu0.17.10.1(在 Ubuntu 17.10 上,毫不奇怪!)

最佳答案

好吧,为了使整个问题更加奇怪,如果您删除并重新创建存储过程(没有代码更改,它完全相同),问题就会消失。

该架构不是现有的架构,并且 mySQL 在其上进行了升级,几周前我在我的计算机上全新安装了 Ubuntu 17.10,并将备份中的所有内容恢复到了该架构上。

我无法解释上面的内容,我只能假设 mySQL 在编译(?)存储过程时缓存 sql 模式。我不知道当你创建它们时它是否能够编译,但它显然缓存了一些东西。

关于MySQL - 出现 1140 错误...这与 sql_mode=only_full_group_by 不兼容,但已禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49626303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com