用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语句更新一条记录,如果不存在就插入,怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 判断记录存在更新不存在插入

用一条sql语句实现:存在则啥都不干,不存在,则插入

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

mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入

insert into 语句 怎么实现 如果插入的值有重复 那么就直接覆盖呢?

插入数据库表中一条记录同时也插入另一个表中的SQL语句怎么写