В Postgres 11 или по-късно, помислете за PROCEDURE
което позволява контрол на транзакциите. Вижте:
Сфункциите , няма кака . Функциите в Postgres са атомарни (винаги вътре в транзакция) и заключванията се освобождават в края на транзакция.
Може да успеете да заобиколите това с консултации бравите . Но това не са едно и също нещо. Всички конкуриращи се транзакции трябва да играят заедно. Едновременният достъп, който не е запознат с уведомителните заключвания, ще развали купона.
Примерен код на dba.SE:
Или може да стигнете някъде с "измамни" автономни транзакции с dblink:
- Как да направя големи неблокиращи актуализации в PostgreSQL?
- Postgres поддържа ли вложени или автономни транзакции?
Или преоценявате проблема си и го разделяте на няколко отделни транзакции.