当前位置: 代码迷 >> Oracle管理 >> oracle表存在重复值不插入数据有关问题
  详细解决方案

oracle表存在重复值不插入数据有关问题

热度:81   发布时间:2016-04-24 05:01:48.0
oracle表存在重复值不插入数据问题
当程序给oracle的表插入一条数据时,判断当前数据表里面有没有存在重复数据,如果没有就插入,如果有就不插入。求思路。求大神们提点。。。

------解决方案--------------------
merge into,insert into ...where not exists...都可以,但考虑到并发性,最好设置唯一键吧
------解决方案--------------------
加unique约束吧,这样有重复就会插入失败。
------解决方案--------------------
会有异常,做下异常处理,类似
SQL code
...exceptionwhen dup_val_on_index then --印象中重复的异常是这个,若不确定可用others    null;--不做任何操作
------解决方案--------------------
查出重复值的SQL,如果有记录说明重复,没有则不重复。
select rowid,username,userpwd from a where a.rowid!=(select max(rowid) from a b where a.username=b.usernameand a.userpwd =b.userpwd );
------解决方案--------------------
5楼正确,null是不执行任何操作。
------解决方案--------------------
探讨
MERGE INTO tableA A
USING (筛选结果集) B
ON (A.XX=B.XX)
/*WHEN MATCHED THEN
UPDATE
SET LOW.KFRST = LOW1.KFRST */
WHEN NOT MATCHED THEN
INSERT
(FIELD1,..)
VALUES
(1,...);
……
  相关解决方案