我正在將數據加載到「暫存」數據庫模式中的父子對錶中。如果以前在「主」數據庫模式中加載到父 - 子對錶中的重複記錄,我想從「分段」數據庫表中刪除它們。刪除在另一個父子表中找到的父子表中的行
這個查詢
SELECT A.*,B.*
FROM STG.AUTO_REPR_PAR_STG A
JOIN STG.AUTO_REPR_CHLD_STG B
ON A.TEST_SEQ_NUM=B.TEST_SEQ_NUM
WHERE EXISTS ( SELECT A.*, B.*
FROM MST.AUTO_REPR_PAR A
JOIN MST.AUTO_REPR_CHLD B
ON A.TEST_SEQ_NUM=B.TEST_SEQ_NUM
)
會顯示哪些內容在以前在主加載升級。但是,我如何從臨時數據庫中的父 - 子對錶中刪除?我畫一個「空白」 ......我試過,但它的炸彈(「表中不允許FROM子句」):
DELETE FROM STG.AUTO_REPR_PAR_STG A
JOIN STG.AUTO_REPR_CHLD_STG B
ON A.TEST_SEQ_NUM=B.TEST_SEQ_NUM
WHERE EXISTS (SELECT A.*, B.*
FROM MST.AUTO_REPR_PAR A
JOIN MST.AUTO_REPR_CHLD B
ON A.TEST_SEQ_NUM=B.TEST_SEQ_NUM
)
後端是Teradata的V13。我目前正在研究CASCADE DELETE選項,但我甚至不確定它是否支持....任何想法?
它是否在from子句中不允許連接表?我敢打賭,在這種情況下,你需要弄清楚如何在你的'WHERE EXISTS'子句中完成同樣的事情。 – Andrew
你找到了這個答案嗎? – TMNT2014
你嘗試過級聯嗎? –