- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 MySQL 5.6 上运行良好的存储过程。在最近的服务器迁移过程中,我们升级到 MySQL 5.7.19。
我的存储过程现在抛出错误:
SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列“utility-monitor.daily_readings.building_id”,该列在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by 不兼容:CALL Monthly_readings(2017, 1, NULL, 1, 1))
我已通过/var/mysql/my.cnf
文件将sql_mode
设置为""
,重新启动mysql服务并通过控制台登录,通过SELECT @@sql_mode;
sql_mode
为空
尽管如此,当我尝试运行存储过程时,我仍然收到上述错误。
接下来我可以做什么来继续排除此错误的根源?
最佳答案
根据documentation ,MySQL 使用您创建过程时处于事件状态的 sql 模式:
MySQL stores the sql_mode system variable setting in effect when a routine is created or altered, and always executes the routine with this setting in force, regardless of the current server SQL mode when the routine begins executing.
因此,使用激活的不同模式(或修复 group by
语法)重新创建该过程(或全部过程,因为它可能不是唯一受影响的过程)。尽管文档中提到了,但改变过程是不够的。您应该考虑不要为此永久更改 sql 模式(尽管您可能还有其他不兼容的代码)。
关于mysql - 尽管 sql_mode 为空,存储过程仍引发 "incompatible with sql_mode=only_full_group_by",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58360796/
我有一个在 MySQL 5.6 上运行良好的存储过程。在最近的服务器迁移过程中,我们升级到 MySQL 5.7.19。 我的存储过程现在抛出错误: SELECT 列表的表达式 #1 不在 GROUP
我有一个在 MySQL 5.6 上运行良好的存储过程。在最近的服务器迁移过程中,我们升级到了 MySQL 5.7.19。 我的存储过程现在抛出错误: SELECT 列表的表达式 #1 不在 GROUP
我正在尝试使用这样的自定义查询: @Query("SELECT i " + "FROM ManagerWorkplace i " + "WHERE i.managerId
通过MySQL命令行客户端,我尝试设置全局mysql_mode: SET GLOBAL sql_mode = TRADITIONAL; 这适用于当前 session ,但在我重新启动服务器后,sql_
我正在尝试在测试环境中测试查询,如下所示 查询:- SELECT a.aggreatorid AS aggreatorid, '' AS txndesc, DATE_FORMAT(DATE(b.tx
我目前在 Windows 10 中使用 mysql server 5.6。在使用 mysql 时,不断出现这样的错误“以下列没有默认值”我在互联网上读到我可以解决这个问题如果我更改 sql_mode。
我的 MySQL 服务器的 sql_mode 设置为 STRICT。对于我正在开发的特定应用程序,我想将其更改为 TRADITIONAL。但是,我不可能在服务器级别执行此操作。 是否可以在我的 PHP
通过 MySQL 命令行客户端,我正在尝试设置全局 mysql_mode: SET GLOBAL sql_mode = TRADITIONAL; 这适用于当前 session ,但在我重新启动服务器后
sql_mode="",即强制不设定MySql模式(如不作输入检测、错误提示、语法模式检查等)应该能提高性能,但有如下问题: 如果插入了不合适数据(错误类型或超常),
请求有关“mysqldump”错误的帮助 我正在弄清楚为什么会发生以下错误。所以,请任何人帮助我。我的写作:A、B、C、DsA. 这是 my.ini 文件 # For advice on how to
我已经使用此 SQL 设置了 SQL_MODE。 SQL 为 SET SQL_MODE='ALLOW_INVALID_DATES'; 现在我们想要恢复它。 请建议我如何做到这一点。 最佳答案 首先运行
我正在运行这个 SQL 语句: SELECT *, GROUP_CONCAT(contact) AS contact FROM table4, table3, table2, tab
SELECT DISTINCT `A/C#` AS `A/C#`, `MyRef` AS `MyRef`, DATEDIFF('2017-06-30', `Date`) AS
这个问题在这里已经有了答案: SQL select only rows with max value on a column [duplicate] (27 个答案) Error related t
我看到我在要插入数据库的表的末尾有这段代码: /*!40000 ALTER TABLE `to_import` ENABLE KEYS */; /*!40101 SET SQL_MODE=@OLD_S
我在 mac El Capitan 上使用 5.7.9 版本,如下所示。 ~ mysql -u root -p Enter password: Welcome to the MySQL monito
我的 SQL 语句在另一台本地服务器上运行良好,但在最近安装的 lamp 服务器上尝试我的项目后,它显示以下错误- Expression #2 of SELECT list is not in GRO
我有这个脚本,我习惯于为动态结果做一个简单的投影 SELECT M.nom_utilisateur, SUM(M.montant_bulletin ) as Montant_T
MySQL中有一些sql_mode值: ANSI, IGNORE_SPACE, STRICT_TRANS_TABLES等 我怎样才能看到一个特定的值?手册说: You can retrieve the
我的 SQL 查询不工作显示此错误: this is incompatible with sql_mode=only_full_group_by 我在其他 mysql pannel 中运行此查询,那里
我是一名优秀的程序员,十分优秀!