我正在尝试在多个线程之间共享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
这里发生了什么?
答案 0 :(得分:0)
该错误不在最近的psycopg2版本中:它可能已在2.4.2中修复。