程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> merge into Oracle裡的 saveOrUapdate,mergesaveoruapdate

merge into Oracle裡的 saveOrUapdate,mergesaveoruapdate

編輯:Oracle教程

merge into Oracle裡的 saveOrUapdate,mergesaveoruapdate


1、初始數據:

SQL> select * from a;
 
ID                     NAME
---------------------- ----------------------
1                      1
2                      1
3                      1
4                      1
5                      1
SQL> select * from b;
 
ID                     NAME
---------------------- ----------------------
1                      2
2                      2
11                     11

2、目標:1)a表中id與b表中id一樣的話,更新a.name以b.name為准;2)b表中id不在a表中的話,復制b表的記錄,插入到a表中

3、功能實現:

merge into A a using B b on (a.id = b.id) --on為匹配條件
when matched then --匹配時 更新a.name
update set a.name = b.name where 1=1 --這裡可以添加where條件
when not matched then --不匹配時 復制並插入b
insert values(b.id,b.name) where 1=1

  

 


oracle問題? 對於oracle中merge into的問題?

就是對兩個表進行對比吧,可以對比插入、更新和刪除
 

ORACLE對於merge into用法

在when matched then 和 when not matched then 後面只能加insert() values 或者 update set ....,.... ,不能附加條件,而且then 後面的語句不能使用其他語句。 另外注意到,B的域只在using裡面的查詢有用吧 ,如果你要使用 也得是 在Using () M 用m吧
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved