- 오라클 DROP TABLE 문
개요
DROP TABLE은 오라클 데이터베이스에서 테이블과 그 테이블에 포함된 모든 데이터를 완전히 삭제하는 DDL(Data Definition Language) 명령어입니다. 테이블 구조와 데이터를 영구적으로 제거할 때 사용합니다.
기본 구문
DROP TABLE [schema.]table_name [CASCADE CONSTRAINTS] [PURGE];
옵션 설명
CASCADE CONSTRAINTS
- 삭제할 테이블을 참조하는 다른 테이블의 **외래 키 제약조건을 함께 삭제**
- 이 옵션을 사용하지 않으면 참조하는 제약조건이 있을 경우 오류 발생
PURGE
- 휴지통(Recyclebin)을 거치지 않고 **즉시 완전히 삭제**
- 10g 버전부터 도입된 휴지통 기능을 우회
사용 예제
기본 삭제
DROP TABLE employees;
스키마 지정 삭제
DROP TABLE hr.employees;
제약조건 함께 삭제
DROP TABLE departments CASCADE CONSTRAINTS;
완전 삭제 (휴지통 안 거침)
DROP TABLE temp_data PURGE;
휴지통(Recyclebin) 관련
- 오라클 10g부터 휴지통 기능 도입
- PURGE 옵션 없이 삭제하면 휴지통으로 이동
- 복원 가능: `FLASHBACK TABLE table_name TO BEFORE DROP`
휴지통 비우기
-- 특정 테이블 휴지통 비우기 PURGE TABLE employees; -- 전체 휴지통 비우기 PURGE RECYCLEBIN;
주의사항
- **운영 환경에서 신중히 사용**해야 하는 위험한 명령어
- 삭제 전 반드시 **백업 확인** 필요
- 대용량 테이블 삭제 시 시스템 부하 발생 가능
- 삭제 후에는 **COMMIT 불필요** (DDL은 자동 커밋)
- 종속된 객체(인덱스, 트리거, 시노님 등)도 함께 삭제됨
TRUNCATE와의 차이
비교 항목 | DROP TABLE | TRUNCATE TABLE |
---|---|---|
**테이블 구조** | 완전 삭제 | 유지 |
**저장 공간** | 할당 해제 | 초기화만 |
**롤백 가능** | 휴지통 사용 시만 | 불가능 |
**속도** | 상대적으로 느림 | 매우 빠름 |
**트리거** | 작동 안함 | 작동 안함 |