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

Maneiras de evitar que os comandos do MySQLdb fiquem fora de sincronia; você não pode executar este comando agora (2014) exceção


A DB-API tenta lidar com as transações por conta própria, iniciando uma transação no primeiro comando e tendo sua própria chamada de API para confirmá-la, então:
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()

Na minha opinião, este é um erro de design sério e gritante da API de banco de dados do Python, tornando um sério aborrecimento executar comandos fora das transações e ter o controle adequado sobre as transações, por exemplo. para usar coisas como BEGIN EXCLUSIVE TRANSACTION do SQLite . É como se alguém sem experiência real em banco de dados tivesse permissão para projetar a API...