簡體   English   中英

如何在Oracle中將增量記錄從一個表轉移到另一個表

[英]How to transfer delta records from one table to another in oracle

我有一個帶有屬性的table t1

emp_joined_date,
emp_name,
emp_number.

我想將此表轉移到另一個表t2(having same structure)

在第一次嘗試期間,我將轉移整個表,但是稍后我只想將delta records從表t1 to t2

那么如何在單個查詢中從表t1到t2插入多個記錄(在oracle中)

那這個呢:

insert into t1
select * from t2
where emp_number not in 
(select t2.emp_number from t2 join t1 on t1.emp_number = t2.emp_number) ;

如果您在t1獲得了新記錄,並且只想在t2插入那些記錄,則可以使用它。 它會給你新的emp_number

insert into t2 (emp_joined_date,emp_name,emp_number)
select t1.emp_joined_date,t1.emp_name,t1.emp_number 
from t1 left join t2
on t1.emp_number=t2.emp_number
where t2.emp_number is null

如果要基於時間插入記錄,請使用此Use NVL函數,以便在首次運行時將復制所有內容。

insert into t2 (emp_joined_date,emp_name,emp_number)
select emp_joined_date,emp_name,emp_number from t1 
where emp_joined_date > 
nvl((select max(emp_joined_date) from t1),to_date('1900-01-01','YYYY-MM-DD'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM