Oracle存在则更新,不存在则插入应用
2014-07-25 22:25
323 查看
更新同一张表的数据。需要注意下细节,因为可能涉及到using的数据集为null,所以要使用count()函数。
不同表:
MERGE INTO mn a USING (select count(*) co from mn where mn.ID=4) b ON (b.co<>0)--这里使用了count和<>,注意下,想下为什么! WHEN MATCHED THEN UPDATE SET a.NAME = 'E' where a.ID=4 WHEN NOT MATCHED THEN INSERT VALUES (4, 'E');
不同表:
--测试数据 create table table1(id varchar2(100),name varchar2(1000),address varchar2(1000)); insert into table1(id,name,address)values('01001','影子','河北') ; commit; --插入 merge into table1 t1 using (select '01002' id,'影子' name,'河北' address from dual) t2 on (t1.id = t2.id) when matched then update set t1.name = t2.name, t1.address = t2.address when not matched then insert values (t2.id, t2.name,t2.address); commit; --查询结果 select * from table1 01001 影子 河北 01002 影子2 辽宁 --更新 merge into table1 t1 using (select '01001' id,'不是影子' name,'山西' address from dual) t2 on (t1.id = t2.id) when matched then update set t1.name = t2.name, t1.address = t2.address when not matched then insert values (t2.id, t2.name,t2.address); commit; --查询结果 select * from table1 01001 不是影子 山西 01002 影子2 辽宁 --删除测试数据 drop table table1;
相关文章推荐
- Oracle存在则更新,不存在则插入应用
- oracle sql 记录存在则更新,不存在则插入
- oracle 实现 存在记录就更新,不存在就插入 merge into
- oracle mybatis(Mergr into语句带序列)添加数据时如果数据存在就更新,如果不存在就插入
- Oracle实现数据不存在则插入,数据存在则更新(insert or update)
- oracle merge及其他方式实现存在更新不存在插入操作
- 如何实现插入时如果不存在则插入如果存在则更新的操作(分别用oracle、MySQL和SQL Server实现)
- oracle 存在则更新不存在则插入-方案
- Oracle实现数据不存在则插入,数据存在则更新(insert or update)
- Oracle 存在 更新 ,不存在插入 Merge into用法总结
- mybatise+oracle添加数据时如果数据存在就更新,如果不存在就插入
- mybatis+oracle添加数据时如果数据存在就更新,如果不存在就插入
- SSIS处理导入数据时, 存在的更新, 不存在的插入
- MySQL 当记录不存在时插入,当记录存在时更新
- SSIS处理导入数据时, 存在的更新, 不存在的插入
- mysql 存在该记录则更新,不存在则插入记录的sql
- mysql的两个技巧(key记录存在则替换,不存在则插入和key记录存在则更新,不存在则插入)
- SSIS处理导入数据时, 存在的更新, 不存在的插入
- mysql 存在则更新 不存在则插入 SQL语句
- SSIS处理导入数据时, 存在的更新, 不存在的插入