首页  

MySQL sql_mode 说明     所属分类 mysql 浏览量 762
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时区设置

伤感情歌系列