SQLMode及相关问题

来源:互联网 发布:淘宝直播好申请吗 编辑:程序博客网 时间:2024/06/04 19:38

1、MySQL中,SQL Mode常用来解决下面几类问题

(1)通过设置SQL Mode,可以完成不同严格程度的数据校验,有效地保障数据准确性。

(2)通过设置SQLMode为ANSI模式,来保证大多数SQL符合标准的SQL语法,这样应用在不同数据库之间进行迁移时,则不需要对业务SQL进行较大的修改。

(3)在不同数据库之间进行数据迁移之前,通过设置SQLMode可以使MySQL上的数据更方便地迁移到目标数据库中。

(4)、MySQL5.0上,查询默认的SQL Mode(sql_mode参数)为REAL_AS_FLOAT、PIPES_AS_CONCAT、ANSI_QUOTES、GNORE_SPACE和ANSI。这种模式下允许插入超过字段长度的值(会截取),只是在插入后,MySQL会返回一个warning。

(5)STRICT_TRANS_TABLES严格模式,实现数据的严格校验,使错误数据不能插入表中,从而保证了数据的准确性。


(6)SET  [SESSION|GLOBAL]sql_mode='modes'

其中session选择标识只在本地连接中生效,global选项标识在本次连接中并不生效,而对于新的连接则生效。


另外可以通过使用“--sql-mode="modes"”选项,在mysql启动时设置sql_mode

2、SQL Mode的常见功能

(1)校验日期数据合法性。

ANSI模式下,非法日期可以插入,但是插入值却变为0000-00-00 00:00:00,系统给出warning;

TRADITIONAL模式下,直接提示日期非法,拒绝插入。

(2)insert或update过程中,TRADITIONAL模式下mod(x,0)就会产生错误,因为traditional也属于严格模式。在非严格模式下mod(x,0)返回的结果是NULL。

(3)启用NO_BACKSLASH_ESCAPES模式,使反斜线(\)成为普通字符。

(4)启用PIPES_AS_CONCAT模式。将“||”视为字符串连接操作符

3、常用的SQL Mode


4、SQL Mode在迁移中如何使用。

mysql与其他异构数据库之间有数据迁移的需求。



NO_TABLE_OPTIONS模式,将去掉show create table中的"engine"关键字,获得通用的建表脚本。




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 商场卖的衣服跟官网差价大怎么办 网购的衣服有好几个破洞怎么办 出租发票有牌号是假的怎么办 支付宝里的多收多保被降级了怎么办 超市购物卡余额与实际不符怎么办 发广告的公众号无法取消关注怎么办 扣扣需要手机验证码登录怎么办 驾校报了联系不了教练了怎么办 手机号被别人注册了百度网盘怎么办 注册公司云证书申请成功后怎么办 淘宝购物卖家迟迟不发货怎么办 淘宝直播顾客加购物车不下单怎么办 东方航空联程机票航班延误怎么办 别别人伸请更换手机绑定qq怎么办 绑定手机号的扣扣忘记密码怎么办 微信公众号个人主体变更公司怎么办 微信号注册成订阅号了怎么办 微信开通了企鹅影院会员怎么办 注销公众号对公账号填写错误怎么办 国外邮的东西在北京扣了手续怎么办 微信购物商城买的东西不发货怎么办 魅族手机电话图标没有了怎么办 新商盟网页新商盟网页打不开怎么办 京东商城购物车装满了怎么办 商家想入住美团没有营业执照怎么办 旅行团定好的人数临时加人该怎么办 淘宝上发货后12天未收到款怎么办 京东购买的东西烂了怎么办 苹果4s手机激活密码忘了怎么办 小米4c返回键失灵了怎么办 小米4c下面三个键失灵怎么办 谷歌浏览器打不开指定的网址怎么办 电脑上我的电脑图标没了怎么办 手机上的短信图标没了怎么办 qq密保手机被别人换了怎么办 苹果六手机很卡网络不给力怎么办 堡垒之夜卡在载入界面怎么办 登录新福建一直说网络不给力怎么办 开发游戏平台给了钱不给东西怎么办 代号英雄与服务器断开连接了怎么办 千牛聊天页面买家信息不显示怎么办