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)