怎样使用sqlchemy 将pandas upsert至mysql数据库。目前我只能使用以下方法遍历df的每一行然后执行upsert。有没有什么方法可以批量upsert呢?ps:订单数据表的订单号字段为主键
from sqlalchemy import create_engine, MetaData
from sqlalchemy import Table
db_conn = create_engine(
'mysql+pymysql://root:****@localhost:****/****', # 密码 端口即schma已隐藏
max_overflow=0, # 超过连接池大小外最多创建的连接
pool_size=5, # 连接池大小
pool_timeout=30, # 池中没有线程最多等待的时间,否则报错
pool_recycle=60 # 多久之后对线程池中的线程进行一次连接的回收(重置)
)
df = pd.read_csv(r"D:\订单信息", engine='python', delimiter=",",encoding="gbk"}).fillna("")
df_dict = df.to_dict('records')
metadata = MetaData(db_conn)
user_table = Table('订单数据', metadata, autoload=True)
for d in df_dict:
on_duplicate_key_stmt = insert(user_table).values(d).on_duplicate_key_update(d)
db_conn.execute(on_duplicate_key_stmt)