派上了用场的mysql rand()函数

       在某mysql表中, 有xxx_type和xxx_id两个字段,且建立了联合唯一索引(需要这么做)。前者是int类型, 后者是string类型。

       平时向表中插入数据, 都正常, 不会出现问题。

       但上周六就蛋疼了, 每月执行一次的离线任务开始执行, 系统立即告警, 经查是(xxx_type, xxx_id)无法插入, 具体原因是: xxx_id为空, 导致(xxx_type, xxx_id)出现冲突, 这就尴尬了。 初步判断,必须在周末发布版本解决。

       凡事就怕绝对,一定要在周六发版本吗? 不不不。

       某哥最后用mysql的rand()函数临时搞定, 不用发版本。 具体做法是: 鉴于在离线任务场景下, xxx_id没有实际意义, 所以,在某xxx_type条件下,如果xxx_id为空,就在命令行上强行置为rand(),  这样离线任务可以继续插入空xxx_id了, 然后继续置为rand(), 如此搞几次, 等离线任务执行完毕, 也就都插入成功了, 幸好,数据量暂时很小。

       临时解决了问题, 足够了。 长远的根本解决问题,还是需要发版本解决, 给xxx_id赋值。

 

       不多说。

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值