mysql的replace into 和oracle的merge into

2,083 阅读1分钟

Mysql的 replace into

就是说在对表进行insert的操作的时候,如果表中存在此数据,那么执行update操作(如果设置的是主键为自动增长那么会增加),反之执行insert操作,建表语句如下

replace into 语句

replace into test set id=2,name='abcd';
replace into test set id=2,name='abcd';
replace into test set id=2,name='abcd';

oracle的merge into

判断数据是否相同的标准就是根据唯一索引来判断,那么在oracle中有没有替代品?答案是有的

merge into语句

merge into 
 test_id a
using 
 (select id , name from test_id ) b
on (a.id = b.id)
 WHEN MATCHED THEN
   UPDATE SET a.name = b.name
 WHEN NOT MATCHED THEN
   INSERT
    (a.id, a.name)
   VALUES
    (b.id, b.name);

总结

Mysql的 replace into和oracle的merge into两个语法功能是相同的

注意

oracle的merge into需要配合using使用