7.1有条件的更新插入 Merge into

插入之前,看表中是否有这次准备插入的却已经存在的数据,存在的进行更新,不存在进行插入

MERGE INTO test1  

USING test2  

ON (test1.numid = test2.numid)  

WHEN MATCHED THEN --不需要填写更新的目标表  

    UPDATE SET test1.varid = test2.varid  

WHEN NOT MATCHED THEN --不需要填写插入的目标表  

INSERT VALUES (test2.numid, test2.varid);  

例子:

--column1 column2 column3是变量

 MERGE INTO users a

      USING (SELECT v_column1 NAME, v_column2 password, v_column3 desc

               FROM dual) b

      ON (a.name = b.name)

      WHEN MATCHED THEN

        UPDATE SET a.password = b.password and a.desc = b.desc

      WHEN NOT MATCHED THEN

        INSERT (NAME, password, desc) VALUES (b.NAME, b.password, b.desc);

猜你喜欢

转载自www.cnblogs.com/sannyhome/p/9213248.html
今日推荐