sql >> Databáze >  >> RDS >> Mysql

Proč MySQL kurzor.execute(sql, multi=True) nefunguje, ale 2 kurzor.execute(sql) funguje?

Toto prohlášení:

cursor.execute(sql, multi=True)

vytvoří iterátor nad výsledky. Vypadá to, že je líný (tj. provádí příkazy SQL pouze podle potřeby). Nikdy se neptáte na výsledky pro druhý příkaz, takže se provádí pouze ten první. Zkuste:

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

Obecně je lepší použít samostatné execute() hovory.




  1. Minimalizace dopadu DBCC CHECKDB:DO a DONT

  2. Jak změnit uživatele na superuživatele v PostgreSQL

  3. Jak nastavit varchar, aby měl neomezenou délku?

  4. Vrácení transakce Mysql při selhání aktualizace