好吧,所以我一直在這個問題上停留了大約2個小時,而且我仍然找不到解決方案。oracle觸發刪除
我有2個數據庫實例。
網站1具有讓說, 表A ID attrib1 FOREIGNKEY - (B表的主鍵)
站點2擁有, 表B ID attrib1
我想創建刪除表A記錄的觸發器。它基本檢查站點2表B是否具有對該特定記錄的引用。如果它確實有這個記錄,我想阻止刪除發生。到目前爲止,我想出了這個,
CREATE OR REPLACE TRIGGER CHECK_DEALERSHIP_USAGE
BEFORE DELETE on TBL_CARDEALERSHIP
FOR each ROW
declare
rowcnt number;
begin
SELECT COUNT(DEALERSHIP_ID) INTO rowcnt
from [email protected]
where DEALERSHIP_ID = :NEW.DEALERSHIP_ID;
if (rowcnt>0) THEN
Raise_Application_Error (-20100, 'This dealership is used in the sales people table.');
end if;
end;
然後我做到這一點,
delete from TBL_CARDEALERSHIP
where DEALERSHIP_ID='83';
但它仍然會刪除它,甚至認爲我有一個記錄在數據庫中
在刪除觸發器中,您需要引用**舊**記錄,例如, 'DEALERSHIP_ID =:OLD.DEALERSHIP_ID;' – DrabJay 2014-09-13 16:08:15