I do not think this works for the MySQLdb driver; You will have to issue separate requests:
cur = conn.cursor() cur.execute("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED") cur.execute("SELECT @@session.tx_isolation") print cur.fetchall()[0] cur.execute("SELECT * FROM bar") print cur.fetchall() cur.execute("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ") cur.execute("SELECT @@session.tx_isolation") print cur.fetchall()[0] # output ('READ-UNCOMMITTED',) (('foo',), ('bar',)) ('REPEATABLE-READ',)
The execute () method of the MySQLdb cursordd method sees only the first query before the semicolon:
cur.execute("SELECT * FROM bar WHERE thing = 'bar'; SELECT * FROM bar") print cur.fetchall() # output (('bar',),)
source share