Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exécuter le fichier .sql en Python avec MySQLdb

MySQLdb semble autoriser cela hors de la boîte, il vous suffit d'appeler cursor.nextset() pour parcourir les ensembles de résultats renvoyés.

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

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

Si vous voulez être absolument sûr que la prise en charge est activée et/ou désactiver la prise en charge, vous pouvez utiliser quelque chose comme ceci :

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)