Postgresql
如何更改 PostgreSQL PL/pgSQL 儲存過程中事務的預設隔離級別?
我對控制 PostgreSQL 過程中事務的隔離級別很感興趣,但沒有找到任何有關如何執行此操作的資訊。第 42 章中有關事務管理的文件。PL/pgSQL — SQL 過程語言僅聲明:
新事務以預設事務特徵(例如事務隔離級別)開始。
我們可以更改預設隔離級別嗎?你能提供範常式式碼嗎?
這應該很簡單:
ALTER PROCEDURE myproc SET default_transaction_isolation = 'repeatable read';
這樣做的缺點是由於過程內部事務管理的限制,您不能再
COMMIT
或ROLLBACK
內部這樣的過程。如果需要,可以像這樣啟動程序主體:
COMMIT; -- otherwise you get a silly error SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
目前,程序內部的事務管理非常有限。