级联修改.txt

来自「介绍了在oracle里」· 文本 代码 · 共 34 行

TXT
34 行
字号
--定义级联删除的外码约束
alter table sc add constraint ref_sno foreign key(sno) references student(sno) on delete cascade;

--定义带级联删除的延迟执行的外码约束,实现级联修改
alter table sc add constraint ref_sno foreign key(sno) references student(sno) on delete cascade deferrable;

set constraint ref_sno deferred;

--测试延迟外码是否定义成功
update student set sno='055' where sno='001';
update sc set sno='055' where sno='001';
commit;

--使用触发器完成级联修改

create or replace trigger tr_update_student
  after update on student  
  for each row
begin
  update sc set sno=:new.sno where sno=:old.sno;
end tr_update_student;


--Raise_Application_Error实例
create or replace trigger tr_update_sc
  before update on sc  
  for each row
declare
  -- local variables here
begin
  if :new.grade<:old.grade then
     raise_application_error(-20000,'Eorr!!!');
  end if;
end tr_update_sc;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?