sql >> Base de Datos >  >> RDS >> Mysql

Formas de evitar que los comandos de MySQLdb no estén sincronizados; no puede ejecutar este comando ahora (2014) excepción

DB-API intenta manejar las transacciones por su cuenta, iniciando una transacción en el primer comando y teniendo su propia llamada API para confirmarla, entonces:

cursor.execute( "CREATE TABLE t1 ( t1_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()
cursor.execute( "CREATE TABLE t2 ( t2_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()

En mi opinión, este es un error de diseño grave y flagrante de DB-API de Python, lo que hace que sea una molestia grave ejecutar comandos fuera de las transacciones y tener un control adecuado sobre las transacciones, por ejemplo. para usar cosas como BEGIN EXCLUSIVE TRANSACTION de SQLite . Es como si a alguien sin experiencia real en bases de datos se le permitiera diseñar la API...