语法:
MERGE INTO table_name alias1
USING (table|view|sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
UPDATE table_name
SET col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);
1.根据newproducts表 来更新products表( 使用表newproducts中的product_name 和category字段来更新表products 中相同product_id的product_name 和category)
MERGE INTO products p --MERGE INTO 跟的是我们要更新的表
USING newproducts np --USING 后面接的是条件表
ON (p.product_id = np.product_id) --ON 后面接的是要更新的表和条件表
连接的条件(可以有多个条件,多个条件用and连接)
WHEN MATCHED THEN -- 满足ON 后面的条件 执行后面的语句(这里的语句是update也可以是insert into语句)
UPDATE
SET p.product_name = np.product_name,
p.category = np.category;
2.当条件不满足的时候把newproducts表中的数据INSERT 到表products中
MERGE INTO products p
USING newproducts np
ON (p.product_id = np.product_id)
WHEN NOT MATCHED THEN
INSERT
VALUES (np.product_id, np.product_name,
np.category);