因为一条sql语句产生了自我怀疑!

故事是这样开始的

在一个月黑风高的夜晚

现场报过来,本该打到新服务的流量,又走到了老服务,老服务的功能不健全,很可能会让现场的用户不能支付。 需要说明一点的是,任何一个从老服务改造到新服务的时候,都不是完全把流量切过去,都需要经过一点时间去验证。

比如我们按照地理位置去切,将北京的部分车场(是的,我们是做停车服务的),切到新服务,其他城市的车场在老服务

我们采用最简单的办法,就是靠一个字段type去控制(0和1)

看似简单,但是事怪就怪在这个字段上,这个控制字段是属于后来加到数据库字段的,而且没有对外去配置,都是通过运维手动去数据库配置的,且数据库字段默认值设置为1。

可总有几个车场时不时的从0就变成了1。。众所周知,一个新的字段不在mybatis xml和pojo出现,那么就不会有操作改掉

翻遍所有的服务,关乎这个表的都是update操作,update操作因为没有这个字段时打死也不会改这个type的

(图1)

冷静下来想想,数据库默认字段为1,然后0都会变成1。没有1变成0的,可以肯定的是,先删除,又新增了,否则没有别的解释

经过一番查验,找到这样一堆代码(伪代码)

replace INTO `A` (
      park_id,
      xxxx,
      xxxx
    )
    SELECT
       park_id,
       xxxx,
       xxxx 
    FROM
    B 
    where b.park_id = #{parkId}复制代码
1、本站目前拥有近 1000+ 精品收费资源,现在加入VIP会员即可全部下载。
2、本资源部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
SEA模板网 » 因为一条sql语句产生了自我怀疑!

发表评论

加入本站VIP会员订阅计划,海量资源免费查看

目前为止共有 3654 位优秀的VIP会员加入! 立刻加入VIP会员