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

MySQLdb.cursor.execute kann nicht mehrere Abfragen ausführen

Wie alle Python DB-API 2.0-Implementierungen , die cursor.execute() Die Methode ist darauf ausgelegt, nur einen zu nehmen -Anweisung, weil sie später Garantien über den Zustand des Cursors gibt.

Verwenden Sie den cursor.executemany() Methode stattdessen. Beachten Sie, dass gemäß der DB-API 2.0-Spezifikation :

Verwenden Sie dies für mehrere INSERT Anweisungen sollten in Ordnung sein:

cursor.executemany('INSERT INTO table_name VALUES (%s)',
    [(1,), ("non-integer value",)]
)

Wenn Sie eine Reihe unterschiedlicher Anweisungen wie in einem Skript ausführen müssen, können Sie die Anweisungen in den meisten Fällen einfach auf ; aufteilen und füttern Sie jede Anweisung mit cursor.execute() separat.