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 参数值 可以设置

相关推荐
山岚的运维笔记36 分钟前
mysql 专业笔记 -- 第 17 章:连接:连接三个具有相同名称 ID 的表
运维·数据库·笔记·后端·学习·mysql·dba
YangYang9YangYan40 分钟前
校招视角|财务数字化岗位 SQL、工具、项目完整备考指南
大数据·数据库·sql
bksczm40 分钟前
从 “什么是 MySQL“ 到库与表的完整操作(MySQL基础篇)
linux·数据库·mysql
hoho_121 小时前
docker中升级mysql到最新版本
mysql·docker·容器
Linux-lucky2 小时前
36-Linux学习之旅之MySQL主从复制
linux·运维·学习·mysql·ubuntu
kyrie_sakura3 小时前
MySQL数据库学习笔记3--关联(联合)查询
数据库·学习·mysql
石小千4 小时前
MySQL 8.4设置密码策略
数据库·mysql
蜡台4 小时前
# 已解决|MySQL 8\.4\.11 密码正确仍报错1045 \(28000\) Access denied 终极修复方案
android·mysql·adb
leoZ2315 小时前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb
她说..5 小时前
MySQL 与 Java 的 JSON 数据处理
java·mysql·json·springboot