如何编写Oracle触发器,以便当用户删除某个记录时,删除不会真正发生,而是对这些行执行更新,并将记录的状态设置为“D”?
我尝试了以下代码:
create or replace
trigger DELFOUR.T4M_ITEM_ONDELETE
before delete on M_ITEM_H
FOR EACH ROW
BEGIN
UPDATE
M_ITEM_H
SET
ITEM_STAT = 'D'
WHERE
CUST_CODE = 'TEST'
AND ITEM_CODE = 'GDAY'
;
raise_application_error(-20000,'Cannot delete item');
END;
但是我遇到了可变表错误。这种情况有可能吗?
INSTEAD OF
触发器。这通常对应用程序是透明的。 - Justin Cave