sql - 避免在 postgres 中违反主键约束
问题描述
我有一个应用程序,其中插入是事务的一部分。现在要插入的值来自用户,因此可能违反了唯一性的主键约束。但是如果引发异常,我不希望中止整个事务,我想忽略并继续完成事务中的其余插入。我是 Postgres 的新手,我想知道触发器是否可以成为实现此功能的方式。如果没有触发,那又是什么?任何帮助表示赞赏。
解决方案
您可以on conflict
在您的 upsert 操作中使用:
insert into table ([list of columns])
values ([list of values])
on conflict (id) DO NOTHING ;
我假设 id 是你的主键
推荐阅读
- spring - 将标头属性传递给 WS 请求 - JAX RS
- javascript - 为什么内部 div 超出外部 div 和当前页面视图且位置固定?
- c++ - clang-8 中的自定义 clang 静态分析器检查器
- python - texts_to_sequences() 缺少 1 个必需的位置参数:“文本”
- python - Python selenium 切换到默认内容不起作用
- image - Angular 8 - PDFMake - 多个图像
- javascript - JavaScript CSV 导出
- python - 如何在 VS 代码中使用 cx_oracle?
- python - LinkedIn个人资料名称抓取
- r - 使用另一个多边形裁剪/剪辑复杂 SpatialPolygonsDataFrame 的最快方法