sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man gör ActiveRecord ThreadSafe

I motsats till kommentarerna är samtidiga insättningar på samma bord helt tillåtna i PostgreSQL, så det finns ett tävlingsvillkor här.

För att göra detta säkert måste du ha en unique begränsning (eller primary key ) på column_name . Dubbletter kommer då att skapa ett undantag som du kan fånga och försöka igen med en uppdatering.

Om du inte har en unik begränsning måste du LOCK TABLE ... IN EXCLUSIVE MODE för att förhindra samtidiga uppror. Eller använd en av de samtidighetssäkra metoderna som beskrivs i:

Hur man UPSERT (SAMMANFAR, INFOGA ... PÅ DUBLIKAT UPPDATERING) i PostgreSQL?



  1. Hitta närmaste matchande strängar och dess delsträngar med hjälp av SQL-fråga

  2. kan inte logga in i google cloud storage sql-instans

  3. Hur spolar man performance_schema-statistik utan att starta om MySQL?

  4. Få alla åtgärder från de tre senaste användarna