[英]Oracle PL/SQL query regarding handling data
我有一个现场生产表,其中有超过100万条记录。 现在,我不需要篡改该表上的任何内容,而是想创建另一个表,该表从此实时生产表中获取所有记录。 我会安排一份可以从主表中获取条目并将其插入到新表中的作业。 但是我不希望每天都有所有记录。 我只需要将每天添加到生产表中的记录添加到新表中。 请提出一种更快,更有效的方法。
您可以使用INSERT / UPDATE / DELETE触发器来执行此操作,以将INSERTED / UPDATED / DELETED行发送到新表,但是这就像在最基本的层次上重新发明轮子一样。
您可以只使用异步复制,而不必自己动手进行复制,这可能是更安全,更可持续和可扩展的。 您可以根据需要向复制的源添加尽可能多的表。
将一百万条记录从现有表复制到新表应该不会花费很长时间-甚至比弄清楚要复制的记录还要快。 您可以执行以下操作:
truncate table copytable;
insert into copytable
select *
from productiontable;
请注意,在执行insert
时,应明确列出各列。
您还可以轻松添加新记录-假设您在生产表上具有某种形式的id
,例如由序列分配的id
。 然后,您可以执行以下操作:
insert into copytable
select *
from productiontable p
where p.id > (select max(id) from copytable);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.