首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使禁用了严格模式,也会出现MySQL错误1055

即使禁用了严格模式,也会出现MySQL错误1055
EN

Stack Overflow用户
提问于 2019-06-27 03:38:00
回答 1查看 102关注 0票数 0

即使禁用了严格模式,我在运行存储过程时仍收到错误1055

在带有MySQL 5.7.26的Ubuntu19.04上,我尝试了my.cnf中sql-mode的每种选项组合,并设置了所有有意义的全局模式。只包括sql-mode = '',但它仍然表现得好像严格模式是打开的。

代码语言:javascript
复制
mysql> SHOW VARIABLES LIKE 'sql_mode';
| Variable_name | Value
| sql_mode      | IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

或者甚至在sql-mode为空的情况下

代码语言:javascript
复制
mysql> SHOW VARIABLES LIKE 'sql_mode';
| Variable_name | Value |
| sql_mode      |       |

我得到的错误是only_full_group_by仍然开着...

代码语言:javascript
复制
mysql> CALL getReadyToInvoiceOrders(480,-1,-1,'','','','','','');
ERROR 1055 (42000): Expression #14 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'axistms_transport_local.BPBCR.currentAwardedID' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

您可以看到"STRICT_TRANS_TABLES“和"ONLY_FULL_GROUP_BY”已被删除,但错误1055仍然存在

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 03:45:56

删除子句ONLY_FULL_GROUP_BY:

代码语言:javascript
复制
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

对于版本5.7 MySQL中的sql_mode,默认设置为ONLY_FULL_GROUP_BY、NO_AUTO_CREATE_USER、STRICT_TRANS_TABLES、NO_ENGINE_SUBSTITUTION

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56779934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档