繁体   English   中英

关于处理数据的Oracle PL / SQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM