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

MySQL por qué cursor.execute(sql, multi=True) no funciona pero 2 cursor.execute(sql) funciona?

Esta declaración:

cursor.execute(sql, multi=True)

crea un iterador sobre los resultados. Parece que es perezoso (es decir, ejecuta instrucciones SQL solo cuando es necesario). Nunca está solicitando los resultados de la segunda declaración, por lo que solo está ejecutando la primera. Prueba:

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

En general, es mejor usar execute() por separado llamadas.