UPDATE else INSERT有兩種實現方法:
1、Properties下的Attribute將Treat source rows as 選爲Update,同時Mapping裏目標表的Atttribue的Insert選項勾上。
2、Properties下的Attribute將Treat source rows as 選爲Data Driven,同時Mapping裏目標表的Atttribue的Update else Insert選項勾上。
Mapping裏目標表的Atttribue下列選項:
DD_INSERT、DD_UPDATE、DD_DELTE三個。
UPDATE有三種選項(互斥,只能選一個)
UPDATE as UPDATE :數據全部更新(主鍵匹配不上的數據丟棄),保留最新數據。
UPDATE as INSERT : 保留歷史數據和最新數據;可以查得到該條數據的一切歷史,存在過的數據依然找得到記錄,歷史數據庫是這麼做的。
UPDATE else INSERT :數據全部更新(主鍵匹配上的做更新,匹配不上的數據插入),保留最新數據。存在過的數據爲最新記錄,找不到歷史記錄,實時交易系統是這麼做的。
想不通的是:INSERT、UPDATE、DELTE既然有這麼好的更新策略,所有記錄都選成DD_UPDATE,爲何還要在更新前寫那麼一大段判斷邏輯呢 ?先mark一下