如果希望仅通过配置达梦数据库而不修改代码来解决 “不是 GROUP BY 表达式” 的错误,可以通过调整达梦数据库的 SQL
模式兼容参数,使其兼容 MySQL 等数据库的宽松分组查询规则(即允许 SELECT 中包含 GROUP BY 中未出现的非聚合字段)。

Mysql中5.7之后的GROUP BY查询,需要改sql_mode的值,这里不做阐述,网上很多教程。
这里主要针对达梦数据库的设置方式。

1.登录达梦数据库(使用 SYSDBA 权限):
/opt/dmdbms/bin/disql SYSDBA/你的密码@localhost:5236
2.修改数据库参数 COMPATIBLE_MODE

达梦的 COMPATIBLE_MODE 参数用于设置数据库兼容模式,默认为 0(达梦模式),可改为 4(兼容 MySQL 模式),该模式下会放宽 GROUP BY 的校验规则:

-- 查看当前兼容模式(默认0)
SELECT SF_GET_PARA_VALUE(2, 'COMPATIBLE_MODE');

-- 修改为兼容MySQL模式(需要重启数据库生效)
SP_SET_PARA_VALUE(2, 'COMPATIBLE_MODE', 4);
3.重启达梦数据库服务(使参数生效):
# 切换到root用户
su - root

# 重启服务(假设服务名为DmServiceDMSERVER)
systemctl restart DmServiceDMSERVER
Logo

一站式 AI 云服务平台

更多推荐