如题,该怎么实现呢?
废话不多说,直接上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汇总。