我现在有一个表A里面有主键,其他表B,C,D...里面有外键对应这个表A的主键。
因为我不知道哪些表的外键有对应A表的主键(请问怎么找到A表主键对应哪些有外键的表?)
现在我想删除表A里面的一条记录,因为约束不能删除
请问才能删除A表里面的一条记录???

解决方案 »

  1.   


    --找出外键和主键的关系及约束名称
    select owner,
           constraint_name,
           constraint_type, 
           table_name,r_owner,
           r_constraint_name 
    from dba_constraints t 
    where t.constraint_type='R' 
    and t.table_name='...'--然后禁用约束
    alter table tablename disable constraint constraint_name;--再删除数据
    delete from tablename where ....
      

  2.   


    找出来 约束是不是用dba_cons_colunms这个更好点啊?想删除时用1楼的办法就可以。。
    若想删除表A中的记录时把从表里的也都删掉,在删除语句后加个cascade