Postgres chạy PL/pgSQL
bên trong giao dịch. Do đó, bạn không thể kiểm soát giao dịch từ bên trong PL/pgSQL
. Mã sẽ giống như sau:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Vì vậy, trả lời câu hỏi của bạn:
Nếu bạn có PL/pgSQL
đang chạy ATM, bạn có máy ATM đang hoạt động giao dịch của mình ...
Tất nhiên, bạn có thể thực hiện một số thủ thuật, chẳng hạn như bắt đầu / kết thúc công việc trên dblink
hoặc như vậy. nhưng sau đó bạn có thể kiểm tra select txid_current();
qua dblink
thành công ...