SQL> create or replace procedure delete_ord(id number)
  2  is
  3  begin
  4   delete from ord where ord_id=id;
  5  if sql%notfound then
  6  raise_application_error(-20001,'请检查并输入正确的订单号');
  7  end if;
  8  end;
  9  /过程已创建。SQL> exec delete_ord(600);
BEGIN delete_ord(600); END;*
ERROR 位于第 1 行:
ORA-02292: 违反完整约束条件 (WFUCAI.PK_ORD_ID) - 已找到子记录日志
ORA-06512: 在"WFUCAI.DELETE_ORD", line 4
ORA-06512: 在line 1
问题:这个订单号是存在的,我也知道违反了完整约束条件。可是我就是想删除这个订单号(主键)以及它在其他表中的记录。
我想应该可以用触发器可以来实现级联删除。可是我只知道写级联update。从来没有写过delete的级联删除触发器。请教高手怎么写。万分感谢!

解决方案 »

  1.   

    帮你顶
    _______________________________
    DBA请进群QQ群:37204725
      

  2.   

    给你一个示例,使用级联删除即可。SQL> create table p1(id int primary key, col2 int);表已创建。
    SQL> insert into p1 values(1, 1);已创建 1 行。SQL> create table p1_child(id int, pid int references p1(id) on delete cascade);
    表已创建。SQL> insert into p1_child values(10, 1);已创建 1 行。
    SQL> delete from p1;已删除 1 行。SQL> select * from p1_child;未选定行