sql >> Databáze >  >> RDS >> PostgreSQL

Jak vytvořit ActiveRecord ThreadSafe

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?



  1. Jak funguje SQLite Char()

  2. Existuje způsob, jak vybrat několik řádků pomocí parametrů?

  3. Dělená tabulka Oracle

  4. EF Core - Tabulka '*.__EFMigrationsHistory' neexistuje