注册 登录
编程论坛 Oracle论坛

插入数据库之前如何进行一个断判?

飙马 发布于 2007-09-24 15:29, 1668 次点击
插入之前如何进行一个断判?

通过下面的语句,我必须将某个表中选择出来的记录插入另外一个表中,但插入前想进行一个判断,如果a(相当于关键字)已经存在了,就不插入该记录了,如果a还不存在,就插入该记录。这个SQL该怎么写呢?

Insert into A(a,b,c,d)
Select a,b,c,d form B
5 回复
#2
ILoveMK2007-09-24 15:48

merge into (select a,b,c,d from a) t1 using (select a,b,c,d from b) t2
on(t1.a=t2.a)
when not matched then
insert (t1.a,t1.b,t1.c,t1.d)
values (t2.a,t2.b,t2.c,t2.d);

#3
飙马2007-09-24 15:55
我试试看!
#4
wind1102007-09-25 15:13
用Trigger怎樣實現,並且返回一提示信息,說明此內容已存在,有知道得朋友嗎,分享下!!!!!!!!!
#5
飙马2007-09-28 10:23
一般似乎都是用游标,并写存储过程来实现.
#6
飙马2007-10-04 15:03
最后这个问题已经解决了。实际上,在定义了一个Cusor后,进行插入操作时,会自动进行判断,如果这个关键字已经存在了,就不会插入了;而关键字不存在时,就会插入。关键就是游标的使用。
1