如何在 9.414 版本中使用 executemany 忽略 postgres 中的重复项?
Posted
技术标签:
【中文标题】如何在 9.414 版本中使用 executemany 忽略 postgres 中的重复项?【英文标题】:how to ignore duplicates in postgres with executemany in version 9.414? 【发布时间】:2018-11-05 08:19:14 【问题描述】:我正在使用 postgres 9.414。我知道插入命令中的“冲突”命令,但它仅在 9.5 及更高版本上受支持。下面的任何解决方法,例如我可以使用python中的executemany
一次插入许多元素?
我的 executemany 块:
db_cursor.executemany('''insert into "tablename" ("col1","col2")''', data)
data:要插入的元组[('val11','val12'),('val21', 'val22'), ('val31', 'val32')]
中所有值的列表。
非常感谢, 苏迪普
【问题讨论】:
【参考方案1】:您可以通过将元组列表转换为集合来首先从元组列表中删除重复项。 然后你可以运行命令executemany:
list(set([('val11','val12'),('val21', 'val22'), ('val31', 'val32')]))
现在,您在元组列表中拥有了唯一的所有内容。
【讨论】:
这样的问题是,虽然在新的数据集中有唯一性,但它并不能保护数据是否已经在表中。 好的,所以你想检查数据是否已经存在。对吗? 不,我想在插入过程中避免重复记录。以上是关于如何在 9.414 版本中使用 executemany 忽略 postgres 中的重复项?的主要内容,如果未能解决你的问题,请参考以下文章
如果您在文件夹中使用语义版本控制,如何获得前 5 个语义版本