psycopg2不执行PostgreSQL函数

时间:2011-11-13 11:43:37

标签: python postgresql psycopg2

我正试图从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 个答案:

答案 0 :(得分:16)

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

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

来自psycopg2 documentation

  

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