表原有数据重导后报 ORA-00001: 违反唯一约束条件

过程如下:
1.创建备份表,备份数据
create table tf_f_feepolicy_send_bf as
select * from tf_f_feepolicy_send ;
2.清楚原表数据
truncate table tf_f_feepolicy_send ;
3.重新拖数据
insert into tf_f_feepolicy_send
select a.PARTITION_ID,
a.PRESENT_INS_ID,
a.S_USER_ID,
a.D_USER_ID,
'19'||FEEPOLICY_INS_ID,
a.FEEPOLICY_ID,
b.item_code ADDUP_ITEM_CODE,
a.VALUE,
a.START_DATE,
a.END_DATE,
a.UPDATE_TIME,
a.TRANS_TIME,
a.TRANS_MODE,
a.REMARK,
a.GCTP_FLAG
from ucr_act1.tf_f_feepolicy_send_bf a, pd.jf_discnt_exp_rela b
where b.event_type=3
and a.feepolicy_id = b.feepolicy_id ;

 第三步出现报错 ORA-00001: 违反唯一约束条件 

 原表主键:
 alter table TF_F_FEEPOLICY_SEND

add constraint PK_TF_F_FEEPOLICY_SEND primary key (PRESENT_INS_ID, PARTITION_ID)

 大神帮忙分析下是什么原因啊。

这又什么好看的, pd.jf_discnzt_exp_rela 的feepolicy_id 有重的。会关联出多条记录

你既然都直接清空表了,我就默认你其他表没有关联数据,所以我建议你第三部还原数据时,把主键去掉。主键另行添加数据源算了。主键毕竟是唯一标识,即使你删了也不要加一样的。