gpt4 book ai didi

postgresql - 如何在 Postgres 中插入两列之一的冲突?

转载 作者:行者123 更新时间:2023-11-29 11:17:34 24 4
gpt4 key购买 nike

当表中的两列之一发生冲突时,是否可以在 Postgres 9.5 中执行 upsert?基本上我有 2 列,如果任一列抛出唯一约束违规,那么我想执行更新操作。

最佳答案

是的,这种行为是默认的。任何违反唯一约束的行为都会构成冲突,如果指定了 ON CONFLICT DO UPDATE,则执行 UPDATEINSERT 语句只能有一个 ON CONFLICT 子句,但是该子句的 conflict_target 可以指定多个列名,每个列名都必须有一个索引,例如 UNIQUE 约束。但是,您仅限于单个 conflict_action,并且在处理该操作时您将不知道是哪个约束导致了冲突。如果您需要那种信息,或根据违反约束的特定操作,您应该编写一个触发器函数,但这样您就失去了 INSERT ... ON CONFLICT DO ... 的所有重要原子性>声明。

关于postgresql - 如何在 Postgres 中插入两列之一的冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35031934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com