我有两个具有相同表格布局的数据库。有十几张感兴趣的表格。他们之间有许多FK。oracle - 将数据移动到相同的数据库
我被要求写一个存储过程从数据库中的数据复制到基于父表中的层次结构的顶部的PK数据库B。我可能会收到一个值或一个值列表。我应该选择数据库A中与数值匹配的所有记录,并将它们插入/更新到数据库B中。这也包括子表中的所有记录。
我的问题是什么做到这一点的最佳(最efficent /最佳实践)的方式?
我应该写从......插入......语句选择一打?
我应该加入表一起的尝试插入到在同一时间的所有表?
谢谢!
附加信息:如果它已不存在 记录应插入。 (基于相应表的PK)。否则应该更新。
显然我需要遍历所有的子表,所以只有一个记录要复制到父表中,但子表可能有10个,子表的子表可能有500个。我当然会需要更新记录,如果它已经存在,插入如果它不是子表格太...
更新: 我认为这将使解决方案更简单,如果我刚删除所有记录相关的顶级密钥,然后插入所有新记录,而不是尝试执行更新。
所以我猜这个问题是它最好只是做了十:
delete from ... where ... in ...
select from ... where ... in ...
insert into...
或者是它更好地做一些还挺花哨的连接来完成所有的刀片在一个SQL语句?
这是一次性练习还是常规练习?数据库的什么版本?你的失败单位是什么 - 所有记录或只是给定的顶级PK? – APC
这是一个常规流程。如果顶级PK发生故障,那么PK可以重新运行。而不是更新记录,我可以只删除它们,然后只做一个插入。 proly会使解决方案变得更简单。 – kralco626