2012-10-05 67 views
0

所以我插入PostgreSQL 9.2與psycopg2和我在Python 2.7。我在這個插件上使用了try: except:,它不會給我任何錯誤,並且像所有的一樣順利。與連接到數據庫相同。psycopg2導入的任何常見錯誤?

當我沒有想到使用這個時,每個人遇到的任何常見錯誤?

問題是insert沒有實際插入。它不會給出錯誤,但它不會導入任何東西

cur.execute(""" 
INSERT INTO data (date, time, name, qty, dayornight, bl, idc, prices, contractlength) 
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s);""", 
    (datet, timet, "lod", qty, "day", btores, 0, prices, contracts)) 

謝謝你們!就像我說的,從字面上看,沒有錯誤,一切都很好。我查了psycopg2,它沒有任何FAQ。

+0

您有問題嗎?或者您只是想知道最終會出現什麼問題? –

+0

哇,我編輯過。它只是不導入任何東西,就像代碼從未存在 – user1610719

+0

它不在常見問題解答中,因爲它在手冊第一頁的第一個示例中。以前從未有人問過。 '提交()'。 – piro

回答

0

默認情況下,psycopg2連接的autocommit屬性值是Falsepsycopg2(手動提交),按照DBAPI說明書和因此「一個新的事務在第一命令執行開始:方法commit()rollback()必須手動調用以終止交易「

因此,對於您insert要提交你需要後(假設cur是一個光標,你只需要調用commit遊標的連接上):

cur.connection.commit() 

另外,您可以設置連接autocommit屬性值爲True,然後「沒有事務由驅動程序處理,並且每個發送到後端的語句都立即生效」