SQL语句 存在就更新不存在就插入

SQL语句 存在就更新不存在就插入,第1张

在向表中插入数据的时候,经常遇到这样的情况:

replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中,

replace into

SQL%NOTFOUND 是SQL中的一个隐式游标,在增删查改的时候自动打开,如果有至少有一条记录受影响,都会返回false,这就就巧妙的构思出了第一种解决方案:

当Oracle语句执行时,发生了异常exception进行处理

当往表中插入一条数据,因为表中有主键约束,如果插入的数据在表中已经存在,则会抛出异常,在异常抛出后进行修改。

dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。

先声明一个变量t_count,表dual表的值赋给t_count,如果这个值小于1,表示记录不存在,进行插入 *** 作,反之,存在就进行修改 *** 作。

先查找要插入的记录是否存在,存在则修改,不存在则插入。具体的实现如下:

先来看一下merge的语法,

写一个存储过程

create procedure procedure_name

@id varchar(50)//你传进来的参数,假如多个,可以用逗号隔开

as

begin

IF EXISTS(SELECT * FROM table_name WHERE id=@patient_id)//假如不存在

BEGIN

insert into table_name ( ) values()

END

end

在后台调用存储过程语句:

exec procedure_name N'id';


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11966178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存