아래 코드를 참조하면 된다.
1. 부모테이블을 참조하는 자식의 fk 제약조건 삭제
2. 부모자식 관계가 없으므로 테이블을 drop purge 한다.
create table tbl_buseo_parent
(buno number(2)
,buname varchar2(20)
,constraint PK_tbl_buseo_parent primary key(buno)
);
-- Table TBL_BUSEO_PARENT이(가) 생성되었습니다.
create table tbl_sawon_child
(sano number(4)
,saname varchar2(20)
,fk_buno number(2)
,constraint PK_tbl_sawon_child_sano primary key(sano)
,constraint FK_tbl_sawon_child_fk_buno foreign key(fk_buno) references tbl_buseo_parent(buno)
);
-- Table TBL_SAWON_CHILD이(가) 생성되었습니다.
select *
from user_constraints
where table_name = 'TBL_SAWON_CHILD';
-- FK_TBL_SAWON_CHILD_FK_BUNO R 레퍼런스가 있는 상태에서
drop table tbl_buseo_parent purge;
-- 오류 보고 - 외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다
--부모, 자식 관계인 fk 제약조건을 없애버린다
drop table tbl_buseo_parent cascade constraint purge;
-- Table TBL_BUSEO_PARENT이(가) 삭제되었습니다. : 제약조건 삭제
select *
from user_constraints
where table_name = 'TBL_SAWON_CHILD';
/*
tbl_buseo_parent 테이블을 참조하고 있는 모든 자식테이블(지금은 tbl_sawon_child)에 존재하는
foreign key 중에서 tbl_buseo_parent 테이블을 참조하고 있는 foreign key 만 먼저 삭제한다.
그런 다음에는 부모자식 관계가 없으므로 tbl_buseo_parent 테이블을 drop purge 한다.
*/