Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL, warum cursor.execute(sql, multi=True) nicht funktioniert, aber 2 cursor.execute(sql) funktioniert?

Diese Aussage:

cursor.execute(sql, multi=True)

erstellt einen Iterator über die Ergebnisse. Es sieht so aus, als wäre es faul (d. h. es führt SQL-Anweisungen nur nach Bedarf aus). Sie fragen nie nach den Ergebnissen für die zweite Anweisung, also wird nur die erste ausgeführt. Versuchen Sie:

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

Im Allgemeinen ist es besser, nur separate execute() zu verwenden Anrufe.