< SQL_MODE 的配置方式 >
01,默认情况下 5.7.20 MySQL 开启该模式,我们可以用指 SQL 预计查看 => select @@global.sql_mode;
- 查看是否开启了only_full_group_by规则校验,在数据库中执行如下sql
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
查询结果如下,从查询结果中可以看到ONLY_FULL_GROUP_BY这个关键字,说明开启了规则校验
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY
- 关闭only_full_group_by的规则校验,关闭规则校验需要执行如下sql。以下两个sql单引号中的内容是第一步查询的结果去掉“,ONLY_FULL_GROUP_BY”之后的值
set @@GLOBAL.sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
set @@SESSION.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_C
02,开启该模式后,对于传统的项目会造成一定的困扰,所以我们应该关闭该模式
03,修改配置文件 my.cnf
04,在 【mysqld】下加入一句配置,如果已经存在就修改
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION