Mysql 的SQL mode魔术

对于数据库一直以来都是一路next安装,安装了之后就使用,很少对其进行什么配置,估计大部分开发人员都是这样,过分依赖DBA。在最近的项目中,由于产品已经在线。因为遇到了开发环境和在线系统数据库配置不一样的问题,并导致了很多麻烦。

 

在开发过程中发现了两个问题:

1、在线系统对于字符长度超出规定的字段进行自动截取,而开发环境中数据库提示错误。

2、在线系统对于非空字段的空值插入自动忽略,而开发环境中报错。

 

对于这两个问题,一路跟踪到系统使用的框架原码日志部分,都没有找出问题所在,纠结中想到会不会是数据库配置的问题?于是上网查找,看到有关mysql sql mode的设置。于是对比开发环境和在线系统的设置发现,再现系统地sql mode设置为空。

 

于是更改开发环境的sql mode设置,于是终于统一了。

 

至于不设置sql mode是否还有其他功能在内,笔者还没有深入探讨,上面两项也可以说是魔术了。但是,个人认为,使用这种魔术简化了开发中的错误处理,却让系统的友好性降低,同时也大大降低了系统纠错能力。不值得鼓励。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值