好吧,所以我一直在这个问题上停留了大约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