我有一个从数据框中获取数据的过程,它正在创建重复项。我尝试了 to_sql 命令的不同变体,但没有帮助。
我的命令是:
df.to_sql('my_table', schema='my_schema', con=engine, if_exists='append', index=False)
我尝试通过保存到临时表然后尝试仅插入差异来直接通过 SQL 执行此操作。我不知道是什么问题。
# with engine.begin() as cnx:
# # insert_sql = 'INSERT IGNORE INTO fund_mapping (SELECT * FROM fund_mapping_temporary_table)'
# insert_sql = """
# INSERT INTO company."fund_mapping" (fund_name, mapped_name)
# SELECT fund_name, mapped_name FROM company."fund_mapping_temporary_table"
# ON CONFLICT DO NOTHING
# """
# cnx.execute(insert_sql)
我什至尝试更改表的所有者。我想不通!
我有时会获取数据库中的数据,如果它不正确,我会调整数据,因此我不想使用“替换”,因为它首先删除整个表。
如何防止重复?