Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como você altera o nível de isolamento SQL do Python usando o MySQLdb?


Eu não acho que isso funcione para o driver MySQLdb; você terá que emitir consultas separadas:
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',)

O método execute() do cursor MySQLdb vê apenas a primeira consulta até o ponto e vírgula:
cur.execute("SELECT * FROM bar WHERE thing = 'bar'; SELECT * FROM bar")
print cur.fetchall()

# output
(('bar',),)