Я пытаюсь запустить SQL-запрос через mysql.connector, для которого требуется команда SET для запроса конкретной таблицы:
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(host=ip,
port=port,
user=user,
passwd=pwd,
database="")
sql="""SET variable='Test';
SELECT * FROM table """
df = pd.read_sql(sql, cnx)
когда я запускаю это, я получаю сообщение об ошибке "Используйте multi = True при выполнении нескольких операторов". Но где я могу положить multi = True?
после многих часов экспериментов я понял, как это сделать. простите меня, если это не самый лаконичный путь, но лучшее, что я могу придумать with-
import mysql.connector
import pandas as pd
cnx = mysql.connector.connect(host=ip,
port=port,
user=user,
passwd=pwd,
database="")
sql1="SET variable='Test';"
sql2="""SELECT * FROM table """
cursor=cnx.cursor()
cursor.execute(sql1)
cursor.close()
df = pd.read_sql(sql2, cnx)
Передача параметров в качестве словаря в аргумент params
должна делать трюк, здесь документация:
pd.read_sql(sql, cnx, params={'multi': True})
Параметры передаются базовому драйверу базы данных.