drop table ts_b;
drop table ts_a;
create table TS_A
(
   A_ID NUMBER(10),
   A_NAME VARCHAR2(10)   
);
create table TS_B
(
   B_ID NUMBER(10),
   B_NAME VARCHAR2(10),
   A_ID NUMBER(10)  
);
ALTER TABLE TS_A ADD CONSTRAINT A_PK PRIMARY KEY (A_ID);
ALTER TABLE TS_B ADD CONSTRAINT B_PK PRIMARY KEY (B_ID);ALTER TABLE TS_B ADD CONSTRAINT B_FK1 FOREIGN KEY (A_ID) REFERENCES TS_A (A_ID) ;
insert into ts_a values(10,'a1');
insert into ts_b values(100,'b1',10);
delete from ts_a where a_id=10;请问使用delete from ts_a where a_id=10 ,如何可以实现级联删除该记录?而我又不清楚有那些表一应了该记录.
如果将ALTER TABLE TS_B ADD CONSTRAINT B_FK1 FOREIGN KEY (A_ID) REFERENCES TS_A (A_ID) on delete cascade定义的话,可以实现.但是现在我不想这样定义.
请各位大哥帮忙.

解决方案 »

  1.   

    前提是,我不清楚都有哪些表引用了该记录,也就是我不可能去从最后一个子表去删除.
    有没有在执行delete from ts_a where a_id=10 的时候,可以加个参数什么的,强制级联删除??????
      

  2.   

    那只有在定义外键的时候,指定删除方式吗?on delete cascade.
    但是现在数据库中的表,在创建的时候没有指定.而现在必需级联删除.
    现在的情况是,我要删除辑录的表,是处于根节点的一个表,其它几百个表
    都与之相关.如果从其叶子节点开始删除的话,工程量太大了.
    请高手指点.