gpt4 book ai didi

mysqldb中带有sqlAlchemy重复项的 Pandas to_sql

转载 作者:行者123 更新时间:2023-12-04 05:38:31 66 4
gpt4 key购买 nike

我正在将PANDAS与SQLAlchemy一起使用DataFrame.to_sql写入MYSQL DB。我喜欢打开'append' --> df.to_sql(con=con, name='tablename', if_exists='append')的标志,因为该程序在白天对表进行了几次小写操作,所以我不希望整个表都被replace覆盖。周期性地,我得到重复的输入错误:

sqla: valuesToCalc has error:  (IntegrityError) (1062, "Duplicate entry 
'0-0000-00-00-00:00:00' for key 'PRIMARY'") 'INSERT INTO valuesToCalc () VALUES ()' ()

以任何方式将语法 "on duplicate key update"添加到pd.to_sql吗?我是否必须停止使用 to_sql并直接使用sqlAlchemy?我希望不要。

最佳答案

不知道您是否找到答案,但这是一个对我有用的解决方法:

在临时表上调用.to_sql(),然后使用查询用temp表更新主表。然后,您可以删除临时表。因此,例如:

df.to_sql(con=con, name='tablename_temp', if_exists='replace')
connection = con.connect()
connection.execute(text("INSERT INTO tablename SELECT * FROM tablename_temp ON DUPLICATE KEY UPDATE tablename.field_to_update=tablename_temp.field_to_update"))
connection.execute(text('DROP TABLE tablename_temp '))

关于mysqldb中带有sqlAlchemy重复项的 Pandas to_sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24879156/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com