我想编写一个触发器,它在从表中删除记录时触发,并在另一个表中插入一条记录并使用已删除记录的详细信息。
数据库:Oracle 10g
我的触发器看起来像这样
CREATE or REPLACE TRIGGER myTrigger
AFTER DELETE
ON myTable
REFERENCING NEW AS old_tab
FOR EACH ROW
BEGIN
INSERT INTO ACTIVITYLOG values ('ADMIN',:old_tab.tabletID,'MIGRATION','ERROR','TEST','T','NIL',sysdate)
END;
这里:old_tab.tabletID
是删除完成tabletID
的表的列。myTable
我想保存我和它被删除的日志。
但是当我尝试删除记录时,出现以下错误
错误代码 4098,SQL 状态 42000:ORA-04098:触发器 'DB.MYTRIGGER' 无效并且重新验证失败
PS 在 NetBeans SQL 编辑器中创建触发器。
这里是,
编辑
STRUCTURE OF myTable
(发生表删除)
tabletID varchar2(15) PRIMARY KEY
tabletName varchar2(100)
结构 ACTIVITYLOG
username varchar2(15)
tabletKey varchar2(15)
page_ref varchar2(100)
errors varchar2(100)
remarks varchar2(100)
operationcode char(2)
lastupdateip varchar2(20)
lastupdatedate date
抱歉,无法访问 SQL PLUS EDITOR。