DB2 Query:在历史表中插入数据(如果不存在)

时间:2015-09-03 22:31:27

标签: db2 ibm-midrange

我有历史表和交易表.....和参考表...... 如果参考表中的状态是CLOSE,那么在历史表中进行那些记录验证,如果没有从事务表插入.....接线查询这样....检查更好的一个...请建议..这个查询可以使用对于大数据?

 INSERT INTO LIB1.HIST_TBL               
( SELECT R.ACCT, R.STATUS, R.DATE FROM  
LIB2.HIST_TBL R JOIN LIB1.REF_TBL C     
ON R.ACCT = C.ACCT WHERE C.STATUS = '5' 
AND R.ACCT NOT IN                       
(SELECT ACTNO FROM LIB1.HIST_TBL)) ; 

1 个答案:

答案 0 :(得分:0)

如果您使用的是DB2 for i的当前版本,请查看MERGE语句

MERGE INTO hist_tbl H
 USING (SELECT * FROM ref_tbl R
        WHERE r.status = 'S')
 ON h.actno = r.actno
 WHEN NOT MATCHED THEN
   INSERT (actno,histcol2, histcol3) VALUES (r.actno,r.refcol2,r.refcol3)
 --if needed
 WHEN MATCHED
   UPDATE SET (actno,histcol2, histcol3) = (r.actno,r.refcol2,r.refcol3)