用sql语句更新一条记录,如果不存在就插入,怎么写?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用sql语句更新一条记录,如果不存在就插入,怎么写?相关的知识,希望对你有一定的参考价值。
我要myswl的语法,怎么写
参考技术A PLSQL 的写法:begin
update tablename
set xxx=values;
exception
when no_data_found then
insert into tablename
valuse();
end ;本回答被提问者采纳 参考技术B create proc InsertData(@id int)
as
begin
declare @count int
set @count =(select count(*) from 表名 where id = @id)
if @count>0
begin
update 表名 set 字段名='修改值' where id = @id
end
else
begin
insert into 表名(id,字段1,字段2) values('id1','值1','值2')
end
end
go
exec InsertData 1
exec InsertData 2
exec InsertData 3
SQL语句 存在就更新不存在就插入
参考技术A 在向表中插入数据的时候,经常遇到这样的情况:replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中,
replace into
SQL%NOTFOUND 是SQL中的一个隐式游标,在增删查改的时候自动打开,如果有至少有一条记录受影响,都会返回false,这就就巧妙的构思出了第一种解决方案:
当Oracle语句执行时,发生了异常exception进行处理
当往表中插入一条数据,因为表中有主键约束,如果插入的数据在表中已经存在,则会抛出异常,在异常抛出后进行修改。
dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。
先声明一个变量t_count,表dual表的值赋给t_count,如果这个值小于1,表示记录不存在,进行插入操作,反之,存在就进行修改操作。
先查找要插入的记录是否存在,存在则修改,不存在则插入。具体的实现如下:
先来看一下merge的语法,
以上是关于用sql语句更新一条记录,如果不存在就插入,怎么写?的主要内容,如果未能解决你的问题,请参考以下文章
mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入