我正在用plPython编写审计触发器。我不知道如何访问当前的用户变量。是不是可以通过plpy?
我还想知道是否可以将变量传递到触发器函数中?如果是的话,这是怎么做的?我试过:

create trigger stock_sys_audit before insert or update or delete on stock_tbl
FOR EACH ROW EXECUTE PROCEDURE sys_audit(current_user);

但它不起作用。
谢谢。

最佳答案

您只能通过SQL访问所有Postgres函数和设置。使用plpy.execute(),示例:

create or replace function py_current_user()
returns text language plpython3u
as $$
    res = plpy.execute("select current_user")
    return res[0]["current_user"]
$$;

select py_current_user();

 py_current_user
-----------------
 postgres
(1 row)

关于python - PostgreSQL-Python-触发器-访问current_user,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46715852/

10-10 16:51