Следуя Являются ли функции plpgsql атомарными?, мне интересно, если обратный если возможно.

Я хочу иметь два соединения (C1 и C1), вызывающих функцию (F), которая выполняет две транзакции (T1 и T2). Меня не волнует, чередуются ли транзакции, когда оба звонят (F)

<T1 on C1> 
<T1 on C2>
<T2 on C1> 
<T2 on C2>

Возможно ли это настроить через настройки в Postgres?

0
zcaudate 12 Фев 2021 в 12:43

1 ответ

Лучший ответ

Функция всегда выполняется внутри одной транзакции.

В сеансе базы данных может быть только одна открытая транзакция одновременно. Однако есть частичные транзакции (которые не независимы от содержащей транзакции) и подготовленные транзакции (которые остаются незавершенными, но с ними нельзя работать).

1
Laurenz Albe 12 Фев 2021 в 10:30