我尝试从psycopg2调用函数,如下所示:

conn = psycopg2.connect(host="name.host.ex", user="username", password="secret")
cur = conn.cursor()
cur.callproc("f_do_action", ["aaa", "bbb"])
cur.close()
conn.close()

当从psql调用此函数时,一切正常,但使用psycopg2似乎什么都没有发生。我也不例外。它只是不调用实际数据库上的函数。
还有来自psycopg2work(SELECT, INSERT)的其他查询。

最佳答案

请在关闭连接之前尝试提交:

cur.close()
conn.commit()
conn.close()

psycopg2 documentation开始:
请注意,在不先提交更改的情况下关闭连接
将导致放弃任何挂起的更改,如同回滚是
执行(除非选择了不同的隔离级别:请参见
设置_isolation_level())。

关于python - psycopg2不执行PostgreSQL函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8111278/

10-15 19:38