我想在PostgreSql
中执行一个存储过程的python脚本我想要这样的事情:
CREATE TRIGGER executePython
AFTER INSERT ON mytable
FOR EACH ROW
BEGIN
SYSTEM('python MyApp');
END;
有人可以帮助我吗?
答案 0 :(得分:3)
您是否可以安装扩展程序?如果是这样,您可以使用the PL/Python
extension
SELECT *
FROM FRUITS
WHERE FRUIT IN (SELECT FRUIT FROM FRUITS WHERE GROUP = 'APPLES');
请注意,这将作为postgres用户运行,因此可能存在权限问题。
还有一个名为PL/SH
的扩展程序,它可能有用,但似乎不是官方程序包。
CREATE FUNCTION callMyApp()
RETURNS VOID
AS $$
import subprocess
subprocess.call(['/usr/bin/python', '/path/to/MyApp'])
$$ LANGUAGE plpythonu;
CREATE TRIGGER executePython
AFTER INSERT ON messages
FOR EACH ROW EXECUTE PROCEDURE callMyApp();
This blog post也可能对你感兴趣。
此外,这几乎与这个名为Run a shell script when a database record is written to postgres的帖子重复。
(注意:我还没有对这些代码进行测试。)