In Postgres 11 of later, overweeg een PROCEDURE
die transactiecontrole mogelijk maakt. Zie:
Met functies , er is geen manier . Functies in Postgres zijn atomair (altijd binnen een transactie) en vergrendelingen worden vrijgegeven aan het einde van een transactie.
U kunt dit wellicht omzeilen met adviserend sloten . Maar dat zijn niet hetzelfde. Alle concurrerende transacties moeten meespelen. Gelijktijdige toegang die niet op de hoogte is van adviesvergrendelingen zal het feest bederven.
Codevoorbeeld op dba.SE:
Of misschien kom je ergens met "vals spelen" van autonome transacties met dblink:
- Hoe voer ik grote niet-blokkerende updates uit in PostgreSQL?
- Ondersteunt Postgres geneste of autonome transacties?
Of u beoordeelt uw probleem opnieuw en splitst het op in een aantal afzonderlijke transacties.