簡體   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