oracle根据一张表更新另外一张表

知道是两张表进行更新,之前作过mysql的,直接就写了:

update a,b set a.code = b.code wehre a.id = b.id

然后就报错了,上网查了下知道oracle不能这样子写
之后找到如下的办法:

UPDATE  a set a.code = (select b.code from  b where a.id = b.id) 

但是这条语句如果数据多的话会很慢,因为他要每条数据都要跟新

然后又找到了这条sql:

MERGE INTO  a USING  b ON ( a.id = b.id) WHEN MATCHED THEN
	UPDATE
SET a.code = b.code 

这样的话,就算数据很多,也很快

posted @ 2017-09-29 15:16  不自然地坚持  阅读(3441)  评论(0编辑  收藏  举报