복구 경로 비교

같은 삭제처럼 보여도 마지막 상태는 다릅니다

핵심은 무엇을 지우는지가 아니라 무엇이 남는지되돌릴 경로가 있는지입니다. `DROP`은 테이블 객체를 없애고, `TRUNCATE`는 구조를 남긴 채 행만 비웁니다.

`PURGE`를 붙이면 휴지통 단계가 사라집니다 그래서 `FLASHBACK TABLE ... TO BEFORE DROP`으로 복구할 수 있는지 여부가 여기서 갈립니다.
시작 상태

`employees` 테이블

삭제 전에는 테이블 구조행 데이터가 함께 존재합니다.

구조 테이블 이름, 컬럼 정의, 인덱스
데이터 사원 행들이 실제로 저장된 상태
질문: 명령이 실행된 뒤에도 테이블 객체가 남아 있는가?
객체 삭제

DROP TABLE employees

DROP TABLE employees;
DROP TABLE employees PURGE;

공통점은 테이블 구조 자체가 제거된다는 점입니다. 차이는 삭제 뒤에 복구용 경유지가 남는지입니다.

기본 DROP

휴지통으로 이동하므로 `FLASHBACK TABLE ... TO BEFORE DROP` 경로가 남습니다.

DROP ... PURGE

즉시 완전 삭제되어 복구 지점 없이 끝납니다.

결과: 객체를 다시 쓰려면 복구하거나 새로 만들어야 합니다.
데이터만 비움

TRUNCATE TABLE employees

TRUNCATE TABLE employees;

모든 행은 비워지지만 테이블 구조는 그대로 유지됩니다. 즉, “없애기”가 아니라 “내용 비우기”에 가깝습니다.

남는 것 테이블 이름, 컬럼 정의, 이후 다시 INSERT 할 자리
사라지는 것 테이블 안의 모든 행 데이터
결과: 테이블은 계속 존재하지만, 비워진 데이터는 별도 복구 경로가 필요합니다.