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

MySQL por que cursor.execute(sql, multi=True) não funciona, mas 2 cursor.execute(sql) funciona?


Esta afirmação:
cursor.execute(sql, multi=True)

cria um iterador sobre os resultados. Parece que é preguiçoso (ou seja, executa instruções SQL apenas conforme necessário). Você nunca está solicitando os resultados da segunda instrução, portanto, está apenas executando a primeira. Experimentar:
for _ in cursor.execute(sql, multi=True): pass

Em geral, é melhor apenas usar execute() separado chamadas.