首页 > 解决方案 > 避免在 postgres 中违反主键约束

问题描述

我有一个应用程序,其中插入是事务的一部分。现在要插入的值来自用户,因此可能违反了唯一性的主键约束。但是如果引发异常,我不希望中止整个事务,我想忽略并继续完成事务中的其余插入。我是 Postgres 的新手,我想知道触发器是否可以成为实现此功能的方式。如果没有触发,那又是什么?任何帮助表示赞赏。

标签: sqlpostgresqltriggersprimary-key

解决方案


您可以on conflict在您的 upsert 操作中使用:

insert into table ([list of columns])
values ([list of values])
on conflict (id) DO NOTHING ;

我假设 id 是你的主键


推荐阅读