我試圖做共享多個線程之間的psycopg2連接。正如文檔中提到的,我通過從共享連接創建新的遊標對象來實現這一點,無論何時我在新線程中使用它。Psycopg2併發問題
def delete(conn):
while True:
conn.commit()
def test(conn):
cur = conn.cursor()
thread.start_new_thread(delete,(conn,))
i = 1
while True:
cur.execute("INSERT INTO mas(taru,s) values (2,%s)",(i,))
print i
i = i +1
conn.commit()
運行後,我得到的輸出喜歡,
1
2
...
98
99
Traceback (most recent call last):
File "postgres_test_send.py", line 44, in <module>
cur.execute("INSERT INTO mas(taru,s) values (2,%s)",(i,))
psycopg2.InternalError: SET TRANSACTION ISOLATION LEVEL must be called before any query
這是怎麼回事?
請解決您的壓痕。首先點擊此評論上方的「修改」鏈接。然後正確輸入代碼。然後選擇它並點擊在輸入框頂部看到的'{}'按鈕。這會將所有行縮進4個空格,從而生成格式正確的代碼。我會爲你做,但我不知道正確的縮進會是什麼。 – senderle 2012-02-21 19:57:41
感謝您的提示。我糾正了代碼 – Phani 2012-02-21 20:17:37