Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have two query. First one is upsert query and second one is update query. These queries run one after the other. Sometimes it is called twice in the same second.

But sometimes I got a deadlock dedected error.

First query:

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

Second query:

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

What should I do to avoid getting the deadlock error?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
5.5k views
Welcome To Ask or Share your Answers For Others

1 Answer

等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...