如果表A中存在这条记录就更新这条记录 ,如果不存在这条记录 就插入新的记录 网上找了很多基本都有问题,最后找到一个论坛才测试通过,记录一下。
MERGE INTO TABLE_ANME T
USING dual ON (T.id = '10000')
WHEN MATCHED THEN UPDATE SET T.column_name1 = '胡歌', T.column_name2 = '刘德华', T.column_name3 = '张国荣' where T.FUND_CODE = '10000'
WHEN NOT MATCHED THEN INSERT (id, column_name1, column_name2, column_name3, column_name4) VALUES(TABLE_ANME_PK.NEXTVAL, '王祖贤', '刘亦菲', '张曼玉','邱淑贞');
说明
MERGE INTO TABLE_ANME T -- 需要操作的表名称
USING dual -- dual:代指单表TABLE_ANME
ON (T.id = '10000') -- 后面放连结条件
WHEN MATCHED THEN UPDATE SET T.column_name1 = '胡歌', T.column_name2 = '刘德华', T.column_name3 = '张国荣' where T.FUND_CODE = '10000' -- 存在即更新
WHEN NOT MATCHED THEN INSERT (id, column_name1, column_name2, column_name3, column_name4)
VALUES(TABLE_ANME_PK.NEXTVAL, '王祖贤', '刘亦菲', '张曼玉','邱淑贞'); -- 不存在则插入该行记录
自古逢秋悲寂寥,我言秋日胜春朝,晴空一鹤排云上,便引诗情到碧霄。
山明水净夜来霜,数树深红出钱黄,试上高楼清入骨,岂如春色嗾人狂。