Oracle的MERGE和MySql的replace into 簡單應用介紹
阿新 • • 發佈:2019-02-11
在日常開發中經常會遇到先查詢 看看結果集有沒有如果有就執行操作沒有又執行咋樣的操
(1).Oracle的MERGE
MERGE INTO --要插入的表 別名
USING (
--查詢的SQL
)別名 ON
--(連線條件)
WHEN MATCHED THEN --如果符合條件
UPDATE SET
WHEN NOT MATCHED THEN
INSERT ()VALUES();--不符合就插入
其實就是和java裡面的if..else..一樣。很簡答下面一個案例有倆個表EMP和EMP1結構一樣,EMP1裡面有兩條資料
CREATE TABLE EMP ( ID NUMBER NOT NULL , NAME VARCHAR2(20 BYTE) NULL , PASSWORD VARCHAR2(20 BYTE) NULL , )
看下面語句
查詢EMP 如果EMP.ID=EMP1.ID就update如果EMP.ID不等於EMP1.ID 就把EMP查出來的資料插入到EMP1裡面。
注意: update的時候不要把主鍵也更新了!!!!!!!!!!!!,不然會報錯,你懂的。
MERGE INTO EMP1 T USING ( SELECT A.ID,A.NAME,A.PASSWORD FROM EMP A )S ON (T.ID=S.ID) WHEN MATCHED THEN UPDATE SET T.NAME=S.NAME, T.PASSWORD=S.PASSWORD WHEN NOT MATCHED THEN INSERT ( ID, NAME, PASSWORD )VALUES( S.ID, S.NAME, S.PASSWORD );
(2).Mysql的replace
replace的作用和MERGE功能一樣,而且更簡單
replace into EMP values(?,?,?,?,?)
沒有就插,有就更新