Обсуждение: Python psycopg transaction isolation level
Hi, I have a simple python script: connection = psycopg.connect("host="+server+" dbname="+database+" user="+login+" password="+password) cursor_modify = connection.cursor() cursor_modify.execute("update messages set flag=1 where flag=0") connection.commit() On running it sometimes I got: psycopg.ProgrammingError: ERROR: could not serialize access due to concurrent update How can I setup isolation level for waiting end of executing other transaction and execute update without any error? -- Thanks, Eugene Prokopiev
On Tue, Feb 28, 2006 at 09:27:29PM +0300, Eugene Prokopiev wrote: > connection = psycopg.connect("host="+server+" dbname="+database+" > user="+login+" password="+password) > cursor_modify = connection.cursor() > cursor_modify.execute("update messages set flag=1 where flag=0") > connection.commit() > > On running it sometimes I got: > > psycopg.ProgrammingError: ERROR: could not serialize access due to > concurrent update psycopg's default isolation level is SERIALIZABLE. I think the way to set the isolation level to READ COMMITTED is: connection = psycopg.connect(...) connection.set_isolation_level(1) You'll find more psycopg expertise on the psycopg mailing list: http://lists.initd.org/mailman/listinfo/psycopg -- Michael Fuhr