leí en el docs:¿Se inicia una transacción incluso en SELECT?
... ya que las transacciones comienzan cuando un cursor ejecutar una consulta, pero final cuando COMMIT o ROLLBACK es ejecutado por el objeto conexión.
import MySQLdb
db = MySQLdb.connect(user="root", db="test")
c = db.cursor()
c.execute("SELECT * FROM books")
print c.fetchall()
Sospecho que MySQLdb inicia una transacción, incluso en las consultas que no modifican datos (como SELECT), debido a que es difícil saber si una consulta sólo lee los datos y no escribe ella.
- ¿Es cierto?
- Si es así, esto significa que debo hacer
cursor.commit()
después de cada consulta, para asegurarme de que no haya ninguna tabla bloqueada. - Otros problemas que desconozco?
Gracias
Podría explicar su ejemplo, y por qué es necesario hacer un 'commit'? – warvariuc
@warwaruk: ¿se ha actualizado esta pregunta? Porque recuerdo que fue diferente. – DonCallisto
No, no se actualizó ... – warvariuc