与其他数据库不同,MySQL 可以运行不同的SQL Mode(SQL 模式)下。SQL Mode 定义了
MySQL 应支持的SQL 语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。
在MySQL 中,SQL Mode 常用来解决下面几类问题。
1、通过设置SQL Mode,可以完成不同严格程度的数据校验,有效地保障数据准确性。
2、通过设置SQL Mode 为ANSI 模式,来保证大多数SQL 符合标准的SQL 语法,这样应用在
不同数据库之间进行迁移时,则不需要对业务SQL 进行较大的修改。
3、在不同数据库之间进行数据迁移之前,通过设置SQL Mode 可以使MySQL 上的数据更方
便地迁移到目标数据库中。
熟悉并了解经常使用的SQL Mode 会帮助用户更好地使用它。下表总结出了常用的SQL Mode 值及其说明。
MySQL 中的SQL Mode
sql_mode 值 描述
ANSI 等同于REAL_AS_FLOAT、PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE 和ANSI
组合模式,这种模式使语法和行为更符合标准的SQL
STRICT_TRANS_TA /BLES STRICT_TRANS_TABLES 适用于事务表和非事务表,它是严格模式,不允许非法日期,
也不允许超过字段长度的值插入字段中,对于插入不正确的值给出错误而不是警告
TRADITIONAL TRADITIONAL 模式等同于STRICT_TRANS_TABLES、STRICT_ALL_TABLES、
NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、TRADITIONAL
和NO_AUTO_CREATE_USER 组合模式,所以它也是严格模式,对于插入不正确的值是
给出错误而不是警告。可以应用在事务表和非事务表,用在事务表时,只要出现错误
就会立即回滚
理解MySQL SQLMode:数据校验、标准SQL与数据迁移
MySQL SQLMode是用于定义数据库应支持的SQL语法和数据校验级别的设置,有助于在不同环境中更灵活地使用MySQL。通过SQLMode,可以实现不同程度的数据校验,确保数据准确性;在保持SQL标准一致性的同时,简化数据库迁移过程;并在数据迁移前,使数据更容易适应目标数据库。常用SQLMode包括ANSI、STRICT_TRANS_TABLES、TRADITIONAL等,每种模式都有其特定用途和限制。
257

被折叠的 条评论
为什么被折叠?



