我试图做共享多个线程之间的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