关键词搜索

源码搜索 ×
×

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

发布2019-04-13浏览2718次

详情内容

       在某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赋值。

 

       不多说。

 

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载