3
我有一個PostgreSQL 9.1服務器這樣一個表:如何防止psycopg2鎖定表
CREATE TABLE foo(id integer PRIMARY KEY);
與psycopg2(≥2.4.2)的交互式Python外殼,我可能會啓動連接和光標和查詢該表:
import psycopg2
conn = psycopg2.connect('dbname=...')
curs = conn.cursor()
curs.execute('SELECT * FROM foo;')
curs.fetchall()
但是,如果我再嘗試修改表:
ALTER TABLE foo ADD COLUMN bar integer;
這個啓動虛擬deadl直到我從Python執行conn.close()
。
我該如何開始與psycopg2的簡單連接,以防止DDL在其他地方造成死鎖? Python中的連接可以是隻讀的。
你也可以只是'conn.commit()'而不是'autocommit'設置爲'True' –