1. 查询sql-model的值:
select @@sql_mode;
2. 先贴一个大多数数据库的配置
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3. 处理我遇到的sql-model问题: 多了一个 ONLY_FULL_GROUP_BY
4. 解决办法 (意思是移除 ONLY_FULL_GROUP_BY 的配置)
set @@sql_mode=(select replace(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
5. 设置全局的sql-model,让以后创建的数据库使用这个配置
set @@global.sql_mode=(select replace(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
这样配置有缺点,如果数据库重启,这些配置会自动消失
上面的方法感觉新开一个窗口都不会生效。
-- 先查询所有的sql模式
SELECT @@sql_mode;
-- 将 ONLY_FULL_GROUP_BY 字符串删除后,再写到下面的sql中 ,这是全局设置,但重启数据库后会失效。
SET GLOBAL sql_mode = '新的SQL模式';
-- 只在当前会话中更改 SQL 模式。
SET SESSION sql_mode = '新的SQL模式';
完工....