mysql sql_mode数据验证检查

sql_mode 功能

sql_mode 会影响MySQL支持的sql语法以及执行的数据验证检查。通过设置sql_mode ,可以完成不同严格程度的数据校验,有效地保障数据准确性

sql_mode 严格模式 VS 宽松模式

宽松模式

比如,插入的数据不满足 表的数据类型,也可能接受,并且不报错,只会有警告而且。

一个字段设置 char(10),如果插入 1234567890ABC,会ABC会自动舍去,只保留1234567890,sql不报错的。

** 严格模式 ** 默认是严格模式

插入数据类型,不能隐式转换的,最终就会报错。

长度规定长度,会报错。

设置sql_mode

临时设置模式

set global sql_mode ='XXXX' ; ## 全局 重启mysql 服务 就失效

set session sql_mode='XXXX'; ## 当前会话 关闭会话 就失效
永久设置模式

windows 系统 设置 my.ini (一般位置 C:\ProgramData\MySQL\MySQL Server 5.7 | C:\ProgramData\MySQL\MySQL Server 8.0),

但 要重启 mysql 服务 才生效

linux /etc/my.cnf

生成环境,一般不能随便重启 mysql服务的,所有采用 临时设置方法 +永久设置方式 来解决线上问题。

查看mysql sql_mode

show variables like 'sql_mode';

select @@global.sql_mode;

select @@session.sql_mode;

select sql_mode

sql_mode 参数值 可以设置

相关推荐
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
Turnip12024 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
WeiXin_DZbishe5 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
tryCbest5 天前
数据库SQL学习
数据库·sql
爱可生开源社区5 天前
MySQL 性能优化:真正重要的变量
数据库·mysql
小马爱打代码5 天前
MySQL性能优化核心:InnoDB Buffer Pool 详解
数据库·mysql·性能优化
cowboy2585 天前
mysql5.7及以下版本查询所有后代值(包括本身)
数据库·sql
风流 少年5 天前
mysql mcp
数据库·mysql·adb