Mysql
 sql >> Base de données >  >> RDS >> Mysql

Façons d'éviter que les commandes de MySQLdb ne soient désynchronisées ; vous ne pouvez pas exécuter cette commande maintenant (2014) exception

DB-API essaie de gérer les transactions par elle-même, en démarrant une transaction à la première commande et en ayant son propre appel d'API pour la valider, donc :

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()

À mon avis, il s'agit d'une erreur de conception grave et flagrante de l'API DB de Python, ce qui en fait un sérieux problème pour exécuter des commandes en dehors des transactions et pour avoir un contrôle approprié sur les transactions, par exemple. pour utiliser des choses comme BEGIN EXCLUSIVE TRANSACTION de SQLite . C'est comme si quelqu'un sans réelle expérience en bases de données était autorisé à concevoir l'API...