Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Führen Sie die .sql-Datei in Python mit MySQLdb aus

MySQLdb scheint dies standardmäßig zuzulassen, Sie müssen nur cursor.nextset() aufrufen um durch die zurückgegebenen Ergebnismengen zu blättern.

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

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

Wenn Sie absolut sicher sein wollen, dass die Unterstützung dafür aktiviert ist, und/oder die Unterstützung deaktivieren möchten, können Sie so etwas verwenden:

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)