Psycopg2无法执行PostgreSQL函数。

14

我试图像这样从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时似乎什么都没有发生。我没有收到任何异常。它只是不在实际数据库上调用该函数。

同时从psycopg2进行的其他查询工作正常(SELECT, INSERT)。

1个回答

17

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

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

来自psycopg2文档:

请注意,关闭连接之前未提交更改将导致任何待处理更改被丢弃,就像执行ROLLBACK一样(除非选择了不同的隔离级别:请参阅set_isolation_level())。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接