简单的触发器问题

gangma2 2014-03-24 11:01:22
表的结构大概如下
user_id parent_id name
1 0 lilei
2 1 lili
3 1 like

主键时user_id,每一条记录都有一个parent_id,表示user之间的父子关系,如上,lilei是lili和like的父。
现在的要求是,当删除lilei这条记录时,lili和like的parent_id自动置为0。

表字段是:

我写了个触发器:
create or replace trigger tri_update_bb
after delete on bb
for each row
begin
update bb set parent_id=0 where parent_id=:old.user_id;
end;
可以通过编译,但在运行的时候总是出现如下图的错误。
执行语句是:delete from bb where user_id=1;

高了半天也没有搞明白,求大神指教。
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WSZHAO_SELECT 2014-03-24
  • 打赏
  • 举报
回复

create table testTri(id int,pid int);
insert into testTri values(1,0);
insert into testTri values(2,1);
insert into testTri values(3,1);
insert into testTri values(4,1);

select * from testTri;

create or replace Trigger tt
after delete on testTri
for each row
declare
PRAGMA AUTONOMOUS_TRANSACTION;
begin
dbms_output.put_line(:old.id);
update testTri set pid=0 where pid=:old.id;
commit;
end;



delete from testTri where id=1;


[

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧