In Postgres 11 oder später, erwägen Sie ein PROCEDURE
was die Transaktionskontrolle ermöglicht. Siehe:
Mit Funktionen , es gibt keine Möglichkeit . Funktionen in Postgres sind atomar (immer innerhalb einer Transaktion) und Sperren werden am Ende einer Transaktion aufgehoben.
Möglicherweise können Sie dies mit Beratung umgehen Schlösser . Aber das ist nicht dasselbe. Alle konkurrierenden Transaktionen müssen mitspielen. Gleichzeitiger Zugriff ohne Hinweissperren wird die Party verderben.
Codebeispiel auf dba.SE:
Oder Sie könnten etwas erreichen, wenn Sie autonome Transaktionen mit dblink "betrügen":
- Wie führe ich große, nicht blockierende Updates in PostgreSQL durch?
- Unterstützt Postgres verschachtelte oder autonome Transaktionen?
Oder Sie bewerten Ihr Problem neu und teilen es in mehrere separate Transaktionen auf.