比较不同oracle数据库中重复表中的记录

时间:2013-11-29 19:38:02

标签: sql oracle

我在两个oracle数据库中有相同的表。一个是临时数据库,它将记录加载到主数据库中。我想通过登台表查看主记录是否没有变化。如果没有则删除它。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

这样的事情应该有效

delete from stagingtable
where id in
(select id
from stagingtable st join productiontable pt on st.id = pt.id
and st.nextfield = pt.nextfield
etc
)

答案 1 :(得分:0)

要获得某些内容发生变化的内容,您可以使用:

SELECT * FROM "staging_table"
MINUS
SELECT * FROM "table";

因此,假设该表具有主键,那么您可以执行

DELETE FROM "table"
WHERE primary_key_column
      NOT IN 
      ( SELECT primary_key_column
        FROM (
          SELECT * FROM "staging_table"
          MINUS
          SELECT * FROM "table"
        )
      );