2011-11-13 40 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())。