merge
来源:互联网 发布:linux 断开ln 编辑:程序博客网 时间:2024/04/30 00:25
从ORACLE 9i开始,ORACLE提供了可以同时执行 insert ,update的命令merge 。
创建测试表 info
SQL> create table info(name varchar2(10),age number, address varchar2(10));
Table created.
插入3条测试数据
insert into info values('robinson',100,'chongqing');
insert into info values('luobingsen',100,'chongqing');
insert into info values('luoluo',100,'chongqing');
创建测试表 information
SQL>
create table information(name varchar2(10),id number,age number,address varchar2(10),school varchar2(10));
Table created.
插入4条测试数据
insert into information values('robinson',1,21,'chongqing','xinandaxue');
insert into information values('luobingsen',2,22,'beijing','xinandaxue');
insert into information values('luoluo',3,23,'shanghai','xinandaxue');
insert into information values('lbs',4,24,'tianjin','xinandaxue');
此时info 表中数据如下
SQL> select * from info;
NAME AGE ADDRESS
---------- ---------- ----------
robinson 100 chongqing
luobingsen 100 chongqing
luoluo 100 chongqing
information 表中数据如下
SQL> select * from informATION;
NAME ID AGE ADDRESS SCHOOL
---------- ---------- ---------- ---------- ----------
robinson 1 21 chongqing xinandaxue
luobingsen 2 22 beijing xinandaxue
luoluo 3 23 shanghai xinandaxue
lbs 4 24 tianjin xinandaxue
现在,我想把information表name,age,address的信息插入到 info表中,
如果info 表中没有 information的信息,那么直接将该信息添加到info表
如果info 表中有information的信息,那么以information的信息为准,更新info表
SQL> merge into info i
2 using (select name,age,address from information) j
3 on (i.name=j.name)
4 when matched then update set i.age=j.age,i.address=j.address
5 when not matched then insert values(j.name,j.age,j.address);
4 rows merged.
SQL> select * from info;
NAME AGE ADDRESS
---------- ---------- ----------
robinson 21 chongqing
luobingsen 22 beijing
luoluo 23 shanghai
lbs 24 tianjin
- merge
- merge
- MERGE
- merge
- Merge
- MERGE
- merge
- merge
- merge
- Merge
- merge
- Merge
- Merge
- Merge
- merge
- MERGE
- Merge
- merge
- 一些Web编辑器
- 50个网页常用小代码
- 关于Android
- Autocompleter
- linq to sql要注意的及存储过程多结果集实现
- merge
- 人生阶段的划分
- 今天学习到了robot.txt
- 监测HTTP and SSL / HTTPS 的工具
- java字符串处理类----以后会继续添加方法到里面
- FileUpload上传机制
- 小知识记录
- 如何用.NET建立windows服务
- gcc-4.3及以上版本实现了c99的inline semantics [ZZ]