MySQL sql_mode 说明
所属分类 mysql
浏览量 925
MySQL sql_mode 可限制一些非法 不规范的操作
select @@sql_mode
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY
对于GROUP BY聚合操作,如果SELECT中的列,没有在GROUP BY中出现,认为这个SQL是不合法的
STRICT_TRANS_TABLES
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制
NO_ZERO_IN_DATE
NO_ZERO_DATE
ERROR_FOR_DIVISION_BY_ZERO
NO_AUTO_CREATE_USER
防止GRANT自动创建新用户,除非指定密码
NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,那么抛出错误
不设置此值时,用默认的存储引擎替代,并抛出一个异常
MySQL5.0以上版本支持三种sql_mode模式
ANSI TRADITIONAL STRICT_TRANS_TABLES
ANSI模式
宽松模式,更改语法和行为,使其更符合标准SQL
对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断,报warning警告
set @@sql_mode=ANSI;
TRADITIONAL模式
严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误
set @@sql_mode=TRADITIONAL;
STRICT_TRANS_TABLES模式
严格模式,进行数据的严格校验,错误数据不能插入,报error错误
如果不能将给定的值插入到事务表中,则放弃该语句
set @@sql_mode=STRICT_TRANS_TABLES
上一篇
下一篇
催眠歌曲系列
云原生一些技术点
linux若干知识点
proguard版本过低导致编译失败
linux时区设置
伤感情歌系列