Na rozdíl od komentářů jsou souběžné vkládání ve stejné tabulce v PostgreSQL zcela přípustné, takže zde existuje sporná podmínka.
Aby to bylo bezpečné, musíte mít unique omezení (nebo primary key ) na column_name . Duplicitní vložení pak vyvolá výjimku, kterou můžete zachytit a zkusit to znovu pomocí aktualizace.
Pokud nemáte jedinečné omezení, musíte LOCK TABLE ... IN EXCLUSIVE MODE aby se zabránilo souběžným výtržnostem. Nebo použijte jednu ze souběžně bezpečných metod popsaných v:
Jak UPSERT (SLOUČIT, VLOŽIT ... PŘI DUPLIKÁCI AKTUALIZACE) v PostgreSQL?