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

MySQL pourquoi le curseur.execute(sql, multi=True) ne fonctionne pas mais 2 le curseur.execute(sql) fonctionne ?

Cette déclaration :

cursor.execute(sql, multi=True)

crée un itérateur sur les résultats. Il semble qu'il soit paresseux (c'est-à-dire qu'il n'exécute les instructions SQL que si nécessaire). Vous ne demandez jamais les résultats de la deuxième instruction, il n'exécute donc que la première. Essayez :

for _ in cursor.execute(sql, multi=True): pass

En général, il est préférable d'utiliser simplement execute() séparé appels.