¿Por qué la conexión en la DB-API de Python no tiene operación de "inicio"?
Trabajando con cursores en mysql-python solía llamar "BEGIN;", "COMMIT;" y "ROLLBACK;" explícitamente como sigue:
try:
cursor.execute("BEGIN;")
# some statements
cursor.execute("COMMIT;")
except:
cursor.execute("ROLLBACK;")
entonces, descubrí que el objeto de conexión subyacente tiene los métodos correspondientes:
try:
cursor.connection.begin()
# some statements
cursor.connection.commit()
except:
cursor.connection.rollback()
Inspeccionando elDB-API PEP Descubrí que no menciona el método begin () para el objeto de conexión, incluso para las extensiones.
Mysql-python, por cierto, lanza el DeprecationWarning, cuando usa el método. sqlite3.connection, por ejemplo, no tiene el método en absoluto.
Y la pregunta es ¿por qué no existe tal método en la PEP? ¿Es la declaración de alguna manera opcional, es suficiente invocar commit () en su lugar?