触发器的问题不知道那里 出错

gongcaihua 2003-10-14 10:54:43
create or replace trigger tri_delete_input_database
before insert or delete on Terminal_Output_Database
for each row
begin

delete from terminal_input_output where Terminal_Machine_Sign=:old.Terminal_Machine_Sign;

end;
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxxfun 2003-10-14
  • 打赏
  • 举报
回复
ORACLE的行级触发器是不能对本表进行操作的,只有语句级的可以。
所以你这样些的触发器是怎么也不会起任何作用的。需要语句级触发器和行级触发起配合使用,例子:
create or replace package pk_Terminal is
pk_Terminal_Machine_Sign varchar2(40);
end PKGYYS;

create or replace trigger Rtri_delete_input_database
before insert or delete on Terminal_Output_Database
for each row
begin
pk_Terminal.pk_Terminal_Machine_Sign:=old.Terminal_Machine_Sign;
end;

create or replace trigger Ltri_delete_input_database
before insert or delete on Terminal_Output_Database
begin
if pk_Terminal.pk_Terminal_Machine_Sign is not null then
delete from terminal_input_output where Terminal_Machine_Sign=pk_Terminal_Machine_Sign;
pk_Terminal.pk_Terminal_Machine_Sign:=null;
end if;
end;
beckhambobo 2003-10-14
  • 打赏
  • 举报
回复
create or replace trigger tri_delete_input_database
before insert or delete on Terminal_Output_Database
for each row
begin
if inserting then
null;
else
delete from terminal_input_output where Terminal_Machine_Sign=:old.Terminal_Machine_Sign;
end if;
end;
/
beckhambobo 2003-10-14
  • 打赏
  • 举报
回复
楼主也不是对触发表操作,再者也可以对触发表进行查询
gongcaihua 2003-10-14
  • 打赏
  • 举报
回复
非常感谢

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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