详解MySQL数据库中的sql_mode模式
概述
之前生产环境配置文件里的sql_mode有个模式ONLY_FULL_GROUP_BY,其意思是:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中。
如果自己sql中有group by,那就要注意了,今天顺便总结下关于sql_mode模式方面的内容,也做个备忘!
一,sql_mode值的含义
mysql5.0以上版本支持三种sql_mode模式:
这个sql_mode简而言之就是:它定义了你MySQL应该支持的sql语法,对数据的校验等等。。
如何查看当前数据库使用的sql_mode:
mysql> select @@sql_mode;
如下是我的数据库当前的模式:
设置 sql_mode
1、查看当前连接会话的sql_mode模式:
mysql> select @@session.sql_mode;
2、从环境变量查看sql_mode模式
mysql> show variables like "sql_mode";
3、查看全局sql_mode设置:
mysql> select @@global.sql_mode;
4、设置global:
mysql> set global sql_mode='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE';
5、设置全局sql_mode可以在不重启MySQL的情况下生效
配置文件里面设置
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE
修改配置文件后,重启MySQL服务生效
篇幅有限,关于sql_mode方面的内容就介绍到这了,后面会分享更多mysql方面内容,感兴趣的朋友可以关注下!
相关推荐
CoderToy 2020-11-16
emmm00 2020-11-17
bianruifeng 2020-11-16
云中舞步 2020-11-12
世樹 2020-11-11
暗夜之城 2020-11-11
Coder技术文摘 2020-09-29
huacuilaifa 2020-10-29
Gexrior 2020-10-22
tufeiax 2020-09-03
疯狂老司机 2020-09-08
王艺强 2020-11-17
aydh 2020-11-12
zry 2020-11-11
URML 2020-11-11
spurity 2020-11-10
yifangs 2020-10-13
Andrea0 2020-09-18
Ida 2020-09-16
ltd00 2020-09-12
xjd0 2020-09-10