mysql实现类似oracle merge into功能

新建两张测试表

tb_merge_new

tb_merge_old

这里需要注意的是,被更改表一定要有主键 

CREATE TABLE tb_merge_old (
  id1 int(11) NOT NULL,
  ename varchar(10) DEFAULT NULL,
  age int(11) DEFAULT NULL,
  PRIMARY KEY (`id1`)
) ENGINE=InnoDB ;

接着在tb_merge_new表里,插入数据,更新数据。

最后执行

INSERT INTO tb_merge_old 

SELECT * FROM  tb_merge_new a where a.ename = 'abc' 

ON DUPLICATE KEY UPDATE ename = VALUES (ename),

                                                   age      = VALUES (age);


最后两张表对比一上数据。


你可能感兴趣的:(mysql)