sql >> Base de Datos >  >> RDS >> Mysql

MySQLdb.cursor.execute no puede ejecutar múltiples consultas

Como todas las implementaciones de Python DB-API 2.0 , el cursor.execute() El método está diseñado para tomar solo uno declaración, porque ofrece garantías sobre el estado del cursor después.

Utilice el cursor cursor.executemany() método en cambio. Tenga en cuenta que, según la especificación DB-API 2.0 :

Usando esto para múltiples INSERT las declaraciones deberían estar bien:

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

Si necesita ejecutar una serie de declaraciones dispares como desde un script, en la mayoría de los casos puede simplemente dividir las declaraciones en ; y alimenta cada instrucción a cursor.execute() por separado.