对表 POSTGRESQL 执行插入/更新时出现死锁错误

问题描述

我有两个查询。第一个是 upsert 查询,第二个是更新查询。这些查询一个接一个地运行。有时它会在同一秒内被调用两次。

但有时我会遇到一个死锁检测错误。

第一次查询:

  insert into pairs
  select *
    from json_populate_recordset(
         null::pairs,'${JSON.stringify(marketsData)}'
         )
  order by market,parity,base,contractaddress
  ON CONFLICT (market,contractaddress)
  DO UPDATE SET buy = EXCLUDED.buy,sell= EXCLUDED.sell,hambuy= EXCLUDED.hambuy,hamsell= EXCLUDED.hamsell,contractaddress= EXCLUDED.contractaddress);

第二次查询:

UPDATE pairs 
   SET multiple = true
 WHERE parity IN (SELECT parity 
                    FROM pairs
                   WHERE market = 'Uniswap' 
                   GROUP by parity 
                  HAVING count(*)>1)
   AND market = 'Uniswap';

我应该怎么做才能避免出现死锁错误?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)