MySQL SQL mode简介

一、通过设置 SQL Mode,可以完成不同严格程度的数据校验,有效地保障数据准确性。
  通过设置 SQL Mode 为 ANSI 模式,来保证大多数 SQL 符合标准的 SQL 语法,这样应用在
不同数据库之间进行迁移时,则不需要对业务 SQL 进行较大的修改。
  在不同数据库之间进行数据迁移之前,通过设置 SQL Mode 可以使 MySQL 上的数据更方
便地迁移到目标数据库中。

二、在 MySQL 5.0 上,查询默认的 SQL Mode(sql_mode 参数)为:REAL_AS_FLOAT、
PIPES_AS_CONCAT、ANSI_QUOTES、GNORE_SPACE 和 ANSI。在这种模式下允许插入超过字段
长度的值,只是在插入后,MySQL 会返回一个 warning。通过修改 sql_mode 为
STRICT_TRANS_TABLES(严格模式)实现了数据的严格校验,使错误数据不能插入表中,从
而保证了数据的准确性,

sql:set session sql_model = " 参数";

三、SQL Mode常见功能

1、校验日期数据地合法性

2、在INSERT或UPDATE过程中,如果SQL MODE处于TRADITIONAL模式,运行MOD(X,
0)会产生错误,因为 TRADITIONAL 也属于严格模式,在非严格模式下 MOD(X,0)返回的结
果是 NULL,所以在含有 MOD 的运算中要根据实际情况设定好 sql_mode。

3、启用 NO_BACKSLASH_ESCAPES 模式,使反斜线成为普通字符。在导入数据时,如
数据中含有反斜线字符,启用 NO_BACKSLASH_ESCAPES 模式保证数据的正确性,是个不错
的选择。

4、启用 PIPES_AS_CONCAT 模式。将“||”视为字符串连接操作符,在 Oracle 等数据
库中,“||”被视为字符串的连接操作符,所以,在其他数据库中含有“||”操作符的 SQL
在 MySQL 中将无法执行,为了解决这个问题,MySQL 提供了 PIPES_AS_CONCAT 模式。

四 、数据库迁移时候需要使用到组合的数据库mode。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talNot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值