2011-11-13 43 views
8

我试图从psycopg2调用一个函数像这样:psycopg2不执行PostgreSQL的功能

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)。

回答

14

尝试关闭连接之前承诺:

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

psycopg2 documentation

注意,关闭连接不会被提交修改第一 会导致任何未决更改被丢弃,就好像一个ROLLBACK执行了 (除非选择了不同的隔离级别:请参阅 set_isolation_level())。