当前位置: 代码迷 >> Oracle技术 >> oracle 主键冲突的检测效的有关问题
  详细解决方案

oracle 主键冲突的检测效的有关问题

热度:184   发布时间:2016-04-24 08:07:28.0
求助 oracle 主键冲突的检测效的问题
向有主键的表中插入大量数据(千万级),会遇到主键冲突的问题,有两种办法可以捕获到主键冲突
1.自己判断主键冲突
 
select count(*) into v_cnt from table_name where primary_key = pk 
                    if v_cnt = 0 then 
                         insert into table_name values(pk);
                     end if;
    


2.oracle判断主键冲突
直接将数据插入表中,出现冲突则捕获异常并且忽略进行下一条数据插入,没有则直接插入

第一种办法的效率要高于第二种方法,请教各位大神有没有什么更高效的办法?
------解决思路----------------------
方案1用得应该是最多的,简单高效
也可以直接写insert语句,在where子句中判断是否需要插入
insert into table_name(primary_key)select pk from dual
where not exists (select 1 from table_name where primary_key = pk)
  相关解决方案