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

Ejecutar archivo .sql en Python con MySQLdb

MySQLdb parece permitir esto fuera de la caja, solo tiene que llamar a cursor.nextset() para recorrer los conjuntos de resultados devueltos.

db = conn.cursor()
db.execute('SELECT 1; SELECT 2;')

more = True
while more:
    print db.fetchall()
    more = db.nextset()

Si quiere estar absolutamente seguro de que el soporte para esto está habilitado y/o deshabilitar el soporte, puede usar algo como esto:

MYSQL_OPTION_MULTI_STATEMENTS_ON = 0
MYSQL_OPTION_MULTI_STATEMENTS_OFF = 1

conn.set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_ON)
# Multiple statement execution here...
conn.set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_OFF)