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的级联删除触发器。请教高手怎么写。万分感谢!
_______________________________
DBA请进群QQ群:37204725
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;未选定行