展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

sql_mode

  • 宽松模式
如果设置的是宽松模式,那么我们在插入数据的时候,即便是给了一个错误的数据,也可能会被接受,并且不报错
  • 严格模式
出现上面宽松模式的错误,应该报错才对,所以MySQL5.7版本就将sql_mode默认值改为了严格模式
  • 设置宽松模式
set sql_mode = ONLY_FULL_GROUP_BY;
  • 查看当前sql_modo
select @@session.sql_mode

select @@global.sql_mode

show variables like 'sql_mode';
  • 临时设置
SET GLOBAL sql_mode = 'modes...'; #全局

SET SESSION sql_mode = 'modes...'; #当前会话

#改为严格模式。此方法只在当前会话中生效,关闭当前会话就不生效了。
set SESSION sql_mode='STRICT_TRANS_TABLES';

#改为严格模式。此方法在当前服务中生效,重启MySQL服务后失效。
set GLOBAL sql_mode='STRICT_TRANS_TABLES';
  • 永久设置
# 在/etc/my.cnf中配置sql_mode,新增如下
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

# 重启MySQL
posted @ 2022-06-06 21:38  DogLeftover  阅读(23)  评论(0编辑  收藏  举报