Postgresql

如何更改 PostgreSQL PL/pgSQL 儲存過程中事務的預設隔離級別?

  • April 6, 2021

我對控制 PostgreSQL 過程中事務的隔離級別很感興趣,但沒有找到任何有關如何執行此操作的資訊。第 42 章中有關事務管理的文件。PL/pgSQL — SQL 過程語言僅聲明:

新事務以預設事務特徵(例如事務隔離級別)開始。

我們可以更改預設隔離級別嗎?你能提供範常式式碼嗎?

這應該很簡單:

ALTER PROCEDURE myproc
  SET default_transaction_isolation = 'repeatable read';

這樣做的缺點是由於過程內部事務管理的限制,您不能再COMMITROLLBACK內部這樣的過程。

如果需要,可以像這樣啟動程序主體:

COMMIT;  -- otherwise you get a silly error
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

目前,程序內部的事務管理非常有限。

引用自:https://dba.stackexchange.com/questions/289336