有两个表x_ass_table和i_ass_table:
我正在向i_ass_table插入具有1128条记录的x_ass_table中的数据。为了避免unique约束错误,我使用以下查询:
insert assignment_number,
effective_start_date,
effective_end_date,
effective_latest_change,
configuration_no
into i_ass_table
select effective_start_date,
effective_end_date,
effective_latest_change,
'XX_FUS'
FROM (SELECT x_ass_table.*,
COUNT() OVER (PARTITION BY assignment_number,
effective_start_date,
effective_end_date,
effective_latest_change) AS c
FROM x_ass_table) t
where c=1;尽管如此,我还是得到了唯一约束错误。尽管我已经限制了assignment_number, effective_start_date,effective_end_date,effective_latest_change列,它们是唯一的键列。
发布于 2016-01-15 19:04:38
我认为您正在检查x_ass_table中存在的重复记录,但您还应该检查i_ass_table和x_ass_table中是否存在相同的记录。这也会产生唯一的约束错误。
select *
from x_ass_table x,
i_ass_table i
where i.assignment_number = x.assignment_number
and i.effective_start_date = x.effective_start_date
and i.effective_end_date = x.effective_end_date
and i.effective_latest_change = x.effective_latest_change;https://stackoverflow.com/questions/34807504
复制相似问题