Mysql
 sql >> Database >  >> RDS >> Mysql

MySQLdb.cursor.execute non può eseguire più query

Come tutte le Implementazioni Python DB-API 2.0 , il cursor.execute() il metodo è progettato per prenderne solo uno istruzione, perché fornisce garanzie sullo stato del cursore in seguito.

Usa il cursore cursor.executemany() metodo invece. Tieni presente che, secondo la specifica DB-API 2.0 :

Usandolo per più INSERT le affermazioni dovrebbero andare bene:

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

Se devi eseguire una serie di istruzioni disparate come da uno script, nella maggior parte dei casi puoi semplicemente dividere le istruzioni su ; e invia ogni istruzione a cursor.execute() separatamente.