当前位置: 首页 > 知识库问答 >
问题:

你如何使更新幂等在postgreql的主键?

张建华
2023-03-14

我有一个错误:

SQL错误[23505]:错误:重复的键值违反唯一约束“name\u pkey”详细信息:键(status\u id,type)=(0,1)已存在。

执行此更新脚本时:

update schema.table_name
    set type = '1'
    where status_id in ('AT', '0', '1',);

共有1个答案

公良泰宁
2023-03-14

主键位于(status\u id,type),这意味着您已经有了以下一对或多对的行:

AT    1
0     1
1     1

所以,更新不起作用。您可以通过过滤掉潜在的冲突来忽略密钥:

update schema.table_name t
    set type = '1'
    from (values ('AT'), ('0'), ('1')) v(status_id)
    where t.status_id = v.status_id and
          not exists (select 1
                      from schema.table_name t2
                      where t2.status_id = t.status_id and t2.type = '1'
                     );

这只是忽略了可能发生的更新。

 类似资料:
  • 问题内容: 我试着通过网络搜索,但是徒劳。有没有一种方法可以使用hibernate来执行幂等更新。 一种用例是使用HTTP PUT通过REST API更新数据库中的特定字段。因此,例如,如果我有一个包含列: _ Id,Name,Phone,UpdateDate*_ 的数据库 _ ,_ 并且我多次用相同的值更新(特定 ID的 ) Phone ( 电话) 字段,那么只有我的第一个操作必须更新 Phon

  • 我正在尝试使用选择查询更新一个表中的列。 它运行并更新整个列作为(文本字段)。 我尝试仅更新宗教几何与宗地几何相交的行。

  • 本文向大家介绍谈谈你对 Kafka 幂等的了解?相关面试题,主要包含被问及谈谈你对 Kafka 幂等的了解?时的应答技巧和注意事项,需要的朋友参考一下 在之前的旧版本中,Kafka只能支持两种语义:At most once和At least once。At most once保证消息不会朝服,但是可能会丢失。在实践中,很有有业务会选择这种方式。At least once保证消息不会丢失,但是可能会

  • 本文向大家介绍什么是幂等性?它是如何使用的?相关面试题,主要包含被问及什么是幂等性?它是如何使用的?时的应答技巧和注意事项,需要的朋友参考一下 幂等性指的是这样一种场景:您重复执行一项任务,但最终结果保持不变或类似。 幂等性主要用作数据源或远程服务,当它接收一组以上指令时,它只处理一组指令。  

  • 我读过很多地方说HTTP补丁是非幂等的。有人能解释一下为什么它是非幂等的吗?因为根据定义,幂等方法可以改变资源状态,也可以不改变资源状态,但是重复的请求在第一个请求之后应该不会有进一步的副作用。重复的补丁请求如何改变资源状态?

  • HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。(注意是副作用) GET http://www.bank.com/account/123456,不会改变资源的状态,不论调用一次还是N次都没有副作用。请注意,这里强调的是一次和N次具有相同的副作用,而不是每次GET的结果相同。GET http://www.news.com/latest-news这个HTTP请求可能会每次得到不同