1. 程式人生 > >Oracle的MERGE和MySql的replace into 簡單應用介紹

Oracle的MERGE和MySql的replace into 簡單應用介紹

   在日常開發中經常會遇到先查詢 看看結果集有沒有如果有就執行操作沒有又執行咋樣的操

(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(?,?,?,?,?)
       沒有就插,有就更新