我正在尝试为我的表创建一个触发器,该触发器根据某个标志设置为“ Y”的时间自动添加发布日期
我没有创建触发器的丰富经验,但到目前为止,这是我所拥有的
create or replace TRIGGER ADD_CREATE_DT after UPDATE of approved ON articles for each row BEGIN :new.create_dt := sysdate where approved = 'Y'; END;
更新列时出现此错误
触发器“ USER.ADD_CREATE_DT”无效且重新验证失败
有任何想法吗?
谢谢
使用WHEN子句:
create or replace TRIGGER ADD_CREATE_DT after UPDATE of approved ON articles for each row when (new.approved = 'Y') BEGIN :new.create_dt := sysdate; END;
或使用IF:
create or replace TRIGGER ADD_CREATE_DT after UPDATE of approved ON articles for each row BEGIN if :new.approved = 'Y' then :new.create_dt := sysdate; end if; END;
在这种情况下,WHEN更合适,更有效。