MySQL中常用的SQL Mode
Posted 小石头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中常用的SQL Mode相关的知识,希望对你有一定的参考价值。
在mysql中,SQL mode常用于解决以下几类问题:
1.完成不同严格程度的数据校验
2.设置 SQL mode 为 ANSI模式,来保证大多数SQL符合标准的SQL语法,这样应用在不同数据库迁移时,就不需要对业务SQL进行较大的修改
3.在不同数据库之间进行数据迁移之前,用过设置SQL mode 可以使MySQL上的数据更方便地迁移到目标数据库中
set sql_mode=\'ansi\';
set sql_mode=\'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI_NO_BACKSLASH_ESCAPES\';
常用的的SQL_mode:
ANSI |
等同于 REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY和ANSI组合模式, 这种模式遇到异常时倾向于警告而不是立刻返回错误 |
STRICT_TRANS_TABLES |
适用于事务表和非事务表,它是严格模式,不允许非法日期,也不允许超过字段长度的值插入字段中, 对于插入入不正确的值给出错误而不是警告 |
TRADITIONAL |
等同于STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERRORS_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER和NO_ENGINE_SUBSTITUTION的组合模式,所以它也是严格模式,对于插入入不正确的值给出错误而不是警告, 可以应用在事务表和非事务表,用在事务表时,只要出现错误就会立刻回滚 |
以上是关于MySQL中常用的SQL Mode的主要内容,如果未能解决你的问题,请参考以下文章