create or replace trigger tri_delete_input_database
before insert or delete on Terminal_Output_Database
for each row
begindelete from terminal_input_output where Terminal_Machine_Sign=:old.Terminal_Machine_Sign;end;
before insert or delete on Terminal_Output_Database
for each row
begindelete from terminal_input_output where Terminal_Machine_Sign=:old.Terminal_Machine_Sign;end;
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;
/
所以你这样些的触发器是怎么也不会起任何作用的。需要语句级触发器和行级触发起配合使用,例子:
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;