扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年4月11日
关键字: ORACLE
在本页阅读全文(共2页)
一个典型的MERGE语句从识别表格开始执行升级,而且对现有的记录进行筛选测试:
MERGE INTO open_projects op
USING project_updatespu
ON (op.pno = pu.pno)
...
表格open_projects会接受更新的数据,而project_updates表格则不会改变,如果项目号码(pno)在两个表格中都一样,那么数据行则被认为是相同的。
MERGE语句剩下的部分是更新语句,以及DELETE WHERE语法。
...
WHEN MATCHED THEN
UPDATE SET pctdone = pu.pctdone,
empno = pu.empno
DELETE
WHERE pu.action = 'D';
列表B展示了MERGE语句运行前后的表格情况。
SQL> @mergedel_b
PNO TITLE STARTDATE PCTDONE EMPNO
---------- ---------------------------------------- --------- ---------- ----------
10 Inventory servers 08-JAN-07 0 206
20 Upgrade Oracle on SRV01 15-JAN-07 0 206
30 Conduct skills assessment 22-JAN-07 0 210
A PNO PCTDONE EMPNO
- ---------- ---------- ----------
C 10 50 214
D 20
2 rows merged.
PNO TITLE STARTDATE PCTDONE EMPNO
---------- ---------------------------------------- --------- ---------- ----------
10 Inventory servers 08-JAN-07 50 214
30 Conduct skills assessment 22-JAN-07 0 210
A PNO PCTDONE EMPNO
- ---------- ---------- ----------
C 10 50 214
D 20
SQL> spool off
列表B
第一个事务对第10号项目进行了改变(操作‘c’),项目完成比例从0变成了50,项目员工人数变成了214人;第二个事务产出了第20号项目,“随后”的列表展示了删除后的状态,而project_updates表格没有发生改变。这个例子展示了这些语句并不是必须的,而且在MERGE语句中也并不需要使用INSERT语句。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者