Contents
see List작성일 2016. 01. 23.
Oracle DROP TABLE CASCADE CONSTRAINTS
Oracle에서 외래 키(FK) 제약조건이 참조하는 테이블을 삭제할 때 CASCADE CONSTRAINTS 옵션을 사용합니다. 종속된 제약조건을 함께 제거하는 방법입니다.
1. 기본 문법
-- 외래 키 제약조건 무시하고 테이블 삭제
DROP TABLE 테이블명 CASCADE CONSTRAINTS;
-- Tablespace 공간도 즉시 반환
DROP TABLE 테이블명 CASCADE CONSTRAINTS PURGE;
-- 예시
DROP TABLE TB_ORDER CASCADE CONSTRAINTS;
DROP TABLE TB_ORDER_DETAIL CASCADE CONSTRAINTS PURGE;
2. 일반 DROP vs CASCADE CONSTRAINTS
-- 상황: TB_ORDER_DETAIL이 TB_ORDER를 참조
-- 일반 DROP - 오류 발생
DROP TABLE TB_ORDER;
-- ORA-02449: unique/primary keys in table referenced by foreign keys
-- CASCADE CONSTRAINTS - 성공
DROP TABLE TB_ORDER CASCADE CONSTRAINTS;
-- TB_ORDER_DETAIL의 FK 제약조건도 함께 삭제됨
3. 삭제되는 것과 유지되는 것
| 삭제됨 | 유지됨 |
|---|---|
| 해당 테이블 | 참조하던 테이블 |
| 해당 테이블의 모든 제약조건 | 참조 테이블의 데이터 |
| 참조하던 FK 제약조건 | 참조 테이블의 다른 제약조건 |
| 인덱스, 트리거 | - |
4. 실전 예시
-- 1. 현재 참조 관계 확인
SELECT
a.table_name AS child_table,
a.constraint_name AS fk_name,
c.table_name AS parent_table
FROM user_constraints a
JOIN user_constraints c ON a.r_constraint_name = c.constraint_name
WHERE c.table_name = UPPER("TB_ORDER");
-- 2. CASCADE로 부모 테이블 삭제
DROP TABLE TB_ORDER CASCADE CONSTRAINTS PURGE;
-- 3. 삭제 후 확인 (FK가 제거되었는지)
SELECT constraint_name, constraint_type
FROM user_constraints
WHERE table_name = UPPER("TB_ORDER_DETAIL");
5. PURGE 옵션
-- PURGE 없이 삭제 - 휴지통으로 이동
DROP TABLE TB_ORDER CASCADE CONSTRAINTS;
-- RECYCLEBIN에서 복구 가능: FLASHBACK TABLE TB_ORDER TO BEFORE DROP;
-- PURGE와 함께 삭제 - 완전 삭제
DROP TABLE TB_ORDER CASCADE CONSTRAINTS PURGE;
-- 복구 불가, Tablespace 즉시 반환
6. 여러 테이블 순서대로 삭제
-- 방법 1: CASCADE CONSTRAINTS 사용
DROP TABLE TB_ORDER CASCADE CONSTRAINTS PURGE;
DROP TABLE TB_ORDER_DETAIL CASCADE CONSTRAINTS PURGE;
DROP TABLE TB_PRODUCT CASCADE CONSTRAINTS PURGE;
-- 방법 2: 참조 순서 역순으로 삭제 (CASCADE 불필요)
DROP TABLE TB_ORDER_DETAIL PURGE; -- 자식 먼저
DROP TABLE TB_ORDER PURGE; -- 부모 나중에
7. 주의사항
- CASCADE CONSTRAINTS는 FK만 삭제, 데이터는 삭제 안 함
- ON DELETE CASCADE와 다름 (이건 데이터 삭제)
- 프로덕션에서 사용 시 반드시 백업 먼저
- DBA 권한 또는 테이블 소유자만 실행 가능
database
| No | 작성일 | Title |
|---|---|---|
| 2371 | 2026. 04. 08. | PostgreSQL 17 쿼리 최적화 완벽 가이드: 인덱스 전략, 실행 계획, 신규 기능 총정리 |
| 2356 | 2026. 04. 07. | PostgreSQL 17 MERGE 강화와 JSON_TABLE 실전 가이드 - SQL만으로 JSON 데이터 완벽 처리 |
| 2339 | 2026. 04. 06. | PostgreSQL 17 JSON_TABLE 완벽 가이드 - JSON 데이터를 테이블로 변환하는 최신 SQL 기법 |
| 2324 | 2026. 04. 05. | PostgreSQL 18 비동기 I/O와 UUIDv7, Virtual Generated Columns 실전 활용 |
| 2302 | 2026. 04. 05. | SQL 쿼리 최적화 실전 테크닉: EXPLAIN부터 인덱스 전략까지 |
| 2301 | 2026. 04. 05. | PostgreSQL 18 새 기능 총정리: 비동기 I/O부터 가상 열까지 |
| 2275 | 2026. 04. 04. | Redis 8.0 신기능과 실전 캐싱 전략: 검색, 벡터, 스트림 활용법 |
| 2274 | 2026. 04. 04. | PostgreSQL 17 신기능 완벽 가이드: JSON 쿼리, 병렬 처리, 논리 복제 강화 |
| 2191 | 2026. 02. 11. | 무중단 데이터베이스 마이그레이션 전략 |
| 2190 | 2026. 02. 11. | Redis 8.0 새로운 데이터 구조와 활용법 |