希望有人能帮助解决这个问题。我是触发器的新手,我试图创建一个触发器来检查被修改的记录是否具有特定的值。如何在同一张表上查询和执行触发器
示例 我有一个表称为归档具有filing_id和filing_status,我想阻止某人更新或删除该表中的任何记录具有filing_status =“FILED”。 所以,如果我有以下
Filing_id Filing_status Val
--------- ------------- ---
0 Filed X
如果有人试图修改瓦尔触发器应停止 我创建了以下触发:
CREATE or replace TRIGGER TRG_PREV_FILING
BEFORE DELETE or UPDATE
ON PF.FILING
FOR EACH ROW
declare
rowcnt number;
BEGIN
SELECT COUNT(filing_id) INTO rowcnt FROM PF.FILING
where status = 'FILED'
and filing_id = :new.filing_id;
if (rowcnt > 0)
then
raise_application_error (-20100, 'You can not delete Or Update initial record');
end if;
END;
我面对的是我得到的问题: ORA-04091这是“表格归档突变,触发器/函数可能看不到它”
所以基本上我不能查询在同一张表上,我正在执行触发器?这是我的情况的问题,有没有人知道这方面的工作?
我感谢所有帮助
非常感谢。我必须学习更多关于触发器的知识。 – user955165