項目中遇到一個場景,當表中有這條記錄的時候,進行修改操作,沒有則新增一條記錄。
最初用Java代碼實現的功能,后來發現有Merge這條語句。
1 MERGE INTO table_name alias1 2 USING (table | view | sub_query) alias2 3 ON (join condition) 4 WHEN MATCHED THEN 5 UPDATE table_name SET col1 = col_val1, col2 = col2_val 6 WHEN NOT MATCHED THEN 7 INSERT (column_list) VALUES (column_values);
比如有個表 user,要查找有沒有叫張三豐的,有的話更新年齡,沒有的話,新建記錄。
MERGE INTO user a USING (count(*) c from user where user ='張三豐' ) b ON (b.c>0) WHEN MATCHED THEN UPDATE set age=66 WHEN NOT MATCHED THEN INSERT (name) VALUES ('張三豐');