部分唯一索引不适用于冲突子句 PostgreSQL

2024-05-18

表结构:

create table example (a_id integer, b_id integer, c_id integer, flag integer);

部分索引:

create unique index u_idx on example (a_id, b_id, c_id) where flag = 0;

我的更新插入代码:

with a_ins_upd as (
    Insert into example (a_id, b_id, c_id, flag)
        select x.a_id, x.b_id, x.c_id, x.flag
        from <input_tableType> x
    on conflict (a_id, b_id, c_id) where flag = 0
    do update
    set
        a_id = excluded.a_id,
        b_id = excluded.b_id,
        c_id = excluded.c_id,
        flag = excluded.flag
returning *
)
insert into <some_other_table>

Result Entries, as of now : Input and Operations

Entry_1 是表中已有的数据。 Entry_2 是新输入。新输入应该更新 Entry_1,而不是插入新条目。

我哪里出错了。我希望更新第二个条目,而不是插入。

我试图包括flag作为索引的一部分。然后,记录也被插入。部分索引不适用于on conflict() clause?

我如何实现这一点 - 我想忽略记录flag= 1,存在于表中(就像盲目flag= 1),并对其他记录(具有的记录)进行合并操作flag= 0,唯一约束仍然有效(a_id, b_id, c_id))。我想过做部分约束/索引并做on conflict。现在看来很棘手。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

部分唯一索引不适用于冲突子句 PostgreSQL 的相关文章

随机推荐

  • 如何将窗口注入到服务中?

    我正在用 TypeScript 编写一个 Angular 2 服务 它将利用localstorage 我想注入对浏览器的引用window对象到我的服务中 因为我不想引用任何全局变量 例如 Angular 1 x window 我怎么做 这目
  • 有队列实现吗?

    任何人都可以建议使用 Go 容器来实现简单快速的 FIF 队列 Go 有 3 种不同的容器 heap list and vector 哪一种更适合实现队列 事实上 如果您想要的是一个基本且易于使用的 fifo 队列 slice 可以满足您所
  • 调用 free() 时损坏的未排序块

    glibc detected a out free corrupted unsorted chunks 0x00000000007646b0 glibc detected a out malloc memory corruption 0x0
  • iOS - 当 UIView 移动时将 UITextField 移动到不同的位置

    我有一个主 UIView 它通过开关向上移动 我有这个工作 那里没有问题 现在 UIView 当向下时 占据屏幕的大约一半 当它向上推时 它会显示底部 40px 在 UIView 中 当它处于向下状态时 它有一个 UITextField 并
  • RegularExpressionAttribute - 如何使其客户端验证不区分大小写?

    我有一个用于客户端验证的字符串 private const String regex b d 5 s s d 5 A Z 2 d 3 s s 1 d 3 s 我在我的中使用这个字符串 RegularExpression regex Erro
  • 二值图像中骨架上两点之间的最短路径

    我有一个二进制图像 其中包含图像的一个像素宽度骨架 您可能基本上知道 在这个二值图像中 我在骨架上有 1 在其他地方有 0 如何找到骨架上两个非零元素之间的最短距离 路径也应该在骨架本身上 我想使用 A star 算法的 C 实现 我找到了
  • Selenium 中的“断言”与“验证”

    Selenium 执行的检查通常有两种形式 assertFoo 和 verifyFoo 据我所知 assertFoo 使整个测试用例失败 而 verifyFoo 只是记录该检查的失败并让测试用例继续进行 因此 使用 verifyFoo 即使
  • 如何在 Gatsby 页面上包含本地 JavaScript?

    我是一个完全的 React 新手 我想这里有些基本的东西我不太明白 默认的 Gatsby 页面如下所示 有没有办法像这样使用本地 js 文件 我想要实现的是让反应忽略script js但仍然让客户端使用它 默认的 Gatsby 页面看起来像
  • 为什么Racket中foldl的定义方式很奇怪?

    在 Haskell 中 与许多其他函数式语言一样 函数foldl被定义为 例如 foldl 0 1 2 3 4 10 这没关系 因为foldl 0 1 2 3 4 根据定义 0 1 2 3 4 但是 在 球拍 中 foldl 0 1 2 3
  • Angular2 - 在反应表单上设置日期字段

    我有一个使用两个日期字段的组件 开始日期和结束日期 默认情况下 我禁用了结束日期字段 当他们选择开始日期时我会切换它 this transitionForm this fb group effectiveEndDate value disa
  • 如何为类本身(而不是类的实例)选择自定义字符串表示形式?

    考虑这个类 class foo object pass 默认的字符串表示形式如下所示 gt gt gt str foo
  • 最小验证在 Mongoose 中不起作用

    我有一个架构 其中余额字段的声明如下所示 balance type Number min 0 default 30 我将 0 设置为最小值 这样余额就不会为负值 但是当我通过更新查询减少余额值时 余额结果是负值 我的更新查询 User up
  • 防止 WNetAddConnection2 类允许被禁止的用户访问共享文件夹

    我开发了 C windows 应用程序 操作系统是Windows 7 要求 是使用带有凭据的代码访问网络共享文件夹 Test WNetAddConnection2 class 限制 是某些用户可以访问此共享文件夹 测试 但对于其他用户 设置
  • 如何检查用户是否按下了某个键?

    在java中 我有一个程序需要连续检查用户是否按下了某个键 所以在伪代码中 就像 if isPressing w do somthing 在java中 你不检查是否按下了某个键 而是检查listen to KeyEvents 实现您的目标的
  • 导航项点击事件在 Android 中不起作用

    Navigationview 点击事件在 Android 中不起作用 我单击项目元素 但代码不起作用 Java 和 XML 代码如下 Codes menulayout DrawerLayout findViewById R id drawe
  • jQuery 或 Javascript - 如何禁用窗口滚动而不溢出:隐藏;

    您好 是否可以在不使用的情况下禁用窗口滚动overflow hidden 当我悬停一个元素时 我试过 chat content on mouseenter function document scroll function e if e h
  • Bootstrap 选择的自定义样式

    我发现选择 Twitter Bootstrap 的下拉菜单非常丑陋 如何仅针对选择小部件停 用 Bootstrap 或者是否可以自定义选择下拉列表的外观 一探究竟 https developer snapappointments com b
  • jfreechart setbackgroundpaint 不执行任何操作

    对于任何有使用 jFreeChart for Swing 应用程序经验的人 我在更改图表背景时遇到问题 我的最终目标是为我的图表设置平滑的渐变背景 但我根本无法更改任何背景 这行代码chart setBackgroundPaint Colo
  • Date-fns parseISO 返回错误日期

    您好 我从 Date fns 得到错误的日期 我正在使用 date fns 格式格式化 new Date format date yyyy MM dd 所以当我console log时 会发生这种情况 console log dateOfB
  • 部分唯一索引不适用于冲突子句 PostgreSQL

    表结构 create table example a id integer b id integer c id integer flag integer 部分索引 create unique index u idx on example a