如何在postgresql函数中设置TRANSACTION ISOLATION LEVEL REPEATABLE READ?

k4emjkb1  于 2023-04-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(150)

从字面上讲,是否可以set transaction isolation levelREPEATABLE READ .
我的功能好像在下面。..

CREATE OR REPLACE FUNCTION my_function()
RETURNS void AS $$
BEGIN
  SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

  PERFORM now();

END;
$$ LANGUAGE plpgsql;

函数调用的结果

ERROR:  SET TRANSACTION ISOLATION LEVEL must be called before any query
CONTEXT:  SQL statement "SET TRANSACTION ISOLATION LEVEL REPEATABLE READ"
PL/pgSQL function my_function() line 3 at SET

postgresql不支持函数中的repeatable read是真的吗?

ffdz8vbo

ffdz8vbo1#

PostgreSQL中,不能在函数中设置事务隔离。
相反,您可以/应该在调用函数之前设置事务。

BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;

-- call your function...

COMMIT;

相关问题