Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Execute o arquivo .sql em Python com MySQLdb


MySQLdb parece permitir isso fora da caixa, você só precisa chamar cursor.nextset() para percorrer os conjuntos de resultados retornados.
db = conn.cursor()
db.execute('SELECT 1; SELECT 2;')

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

Se você quiser ter certeza absoluta de que o suporte para isso está ativado e/ou desativar o suporte, você pode usar algo assim:
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)