03 如果某条记录存在,就执行更新操作;如果不存在,就执行插入操作。

如题,该怎么实现呢?

废话不多说,直接上SQL:

--MySQL
replace into test02(id,name,score) values(11,'N6',85);--不存在,插入,存在,修改

--Sql Server
if not exists (select 1 from where id = 1) 
insert into test02(id,name,score) values(1,'N1',89)
else 
update test02 set score = 89 where id = 1

--Oracle
MERGE INTO  test02 T1
USING (SELECT 1 as id FROM dual) T2 on (T1.ID=T2.ID) --如果id匹配到了,就进行更新,否则就插入
WHEN MATCHED THEN UPDATE SET T1.score=89 --更新
WHEN NOT MATCHED THEN  INSERT (T1.ID, T1.NAME) VALUES (1,"N1",89); --插入数据

以MySQL数据库为例,下面是操作:

  • 如下是test02表的全部数据:

 

replace into test02(id,name,score) values(11,'N6',85);--不存在,插入,存在,修改

 

  • 接下来我们可以再进行查询,可以看到,id为11的数据已经插入到表中。

 

假如是已经有的id,那么我们就是执行修改。

replace into test02(id,name,score) values(1,'N1',85);

 以上就是三种数据库更新插入操作的SQL汇总。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值