求助 触发器!
文件夹树形结构目录表
folderid 文件夹id
foldername 文件夹名
fparentid 父文件夹id
isdelete 是否删除(逻辑删除)
表数据
folderid foldername fparentid isdelete
1 共享文件夹 0 0
2 部门文件夹 0 0
3 共享子文件夹 1 0
4 财务共享 1 0
5 2013年 4 0
6 2014年 4 0
5 2012年 4 0
需求是 所有的删除 都是逻辑删除 ( isdelete 置为1), 删除父文件夹 同时删除 父文件夹下的所有子文件夹。
触发器
CREATE OR REPLACE TRIGGER A_U BEFORE
UPDATE OF "ISDELETE" ON A表 FOR EACH ROW
declare
newisdelete varchar2(1);
oldisdelete varchar2(1);
newdeletedate varchar2(20);
begin
newisdelete:=:new.isdelete;
oldisdelete:=:old.isdelete;
newdeletedate:=:new.deletedate;
if newisdelete='1' then
update A表 set isdelete='1' where fparentid=:new.folderid;
end if;
end;
执行 update 操作后 (update A set isdelete=‘1’ where fparenti=4)
报ora 04091 表发生变化,触发器不能为读。
------解决方案--------------------来接个分------解决方案--------------------啊。。。这也行