I Postgres 11 eller senere, overvej en PROCEDURE
som tillader transaktionskontrol. Se:
Med funktioner , der er ingen måde . Funktioner i Postgres er atomare (altid inde i en transaktion), og låse frigives i slutningen af en transaktion.
Du kan muligvis omgå dette med rådgivning låse . Men det er ikke det samme. Alle konkurrerende transaktioner skal spille med. Samtidig adgang, der ikke er opmærksom på rådgivende låse, vil ødelægge festen.
Kodeeksempel på dba.SE:
Eller du kan komme et sted med at "snyde" autonome transaktioner med dblink:
- Hvordan laver jeg store ikke-blokerende opdateringer i PostgreSQL?
- Understøtter Postgres indlejrede eller autonome transaktioner?
Eller du revurderer dit problem og deler det op i et par separate transaktioner.