刚写了一条sql执行完mysql服务都停了

大致是新增时一个字段的值是 子查询当前表然后 left join了另外一张表

table_a,table_b

insert into table_a(v1, v2, v3)
values ('v1', 'v2', if(exists(select id
                              from table_a a
                                       left join table_b b on a.id = b.a_id
                              where a.v4 = 'v4'
                                and b.status in (1, 3)), 1, 2))

v3值是判断以前是否存在这个数据

代码写的是批量新增,测试数据三条就挂了

写法改了改,就好了

insert into table_a(v1, v2, v3)
values ('v1', 'v2', if(exists(select id
                              from table_a a
                              where a.v4 = 'v4'
                                and exists(select id from table_b b where a.id = b.a_id and b.status in (1, 3)), 1, 2))

有点没搞明白,百度也找不到答案,可能服务器也有点问题,尽量在外面查询出结果再insert吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值