如何让Postgres忽略使用重复键但继续前进的插入物[英] how to have postgres ignore inserts with a duplicate key but keep going

本文是小编为大家收集整理的关于如何让Postgres忽略使用重复键但继续前进的插入物的处理方法,想解了如何让Postgres忽略使用重复键但继续前进的插入物的问题怎么解决?如何让Postgres忽略使用重复键但继续前进的插入物问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我将记录数据插入内存中的记录数据中,并希望该数据库忽略数据库中已经存在的任何记录(通过具有相同的主键),但请继续与我的其余插件一起进行.<<<<<<<<<<

我正在使用clojure和hugsql,顺便说一句,但我猜答案可能是语言不可知.

我本质上以这种方式将数据库视为一组,我可能会参与反对.

推荐答案

如果您使用的是Postgres 9.5或更新(我认为您是,因为它是在2016年1月发布的),则有一个非常有用的ON CONFLICT cluase,您可以使用:

INSERT INTO mytable (id, col1, col2)
VALUES (123, 'some_value', 'some_other_value')
ON CONFLICT (id) DO NOTHING

其他推荐答案

我必须为Postgres的早期版本解决此问题,因此我不使用Muliple Rows的单个插入语句,而是使用了多个插入语句,并且只需在脚本中运行所有插入语句,并确保一个错误不要停止脚本(我使用"停止误差"的adminer未选中),以便执行不投掷错误的脚本,然后插入所有新条目.

本文地址:https://www.itbaoku.cn/post/1763825.html