postgresql 重复键值违反唯一约束,但部分键在表中不存在

w80xi6nr  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(155)

我有一个表,其中有column 1,column 2,column 3和column 4。主键是(column 1,column 2,column 3)。
当我尝试执行“UPDATE public.table SET column 1 = value_x;”时,我得到:
错误:重复键值违反唯一约束“pk_table“错误IL:Key(column 1,column 2,column 3)=(value_x,value_y,value_z)已存在。
但是当我执行“SELECT * FROM table WHERE column 1 = value_x;”时,我得到0个结果。所以从逻辑上讲,导致错误的主键不存在。
有谁知道为什么我得到这个错误?谢谢
PS:我在PostGres。

s2j5cfk0

s2j5cfk01#

你有一个3列组合的p_key,如果你使用update语句,它会在整个表中更新,在某个点上,column1,2,3的组合变得相同,导致p_key违规,因此抛出错误。

相关问题