개발/Postgresql
postgresql 에서 DROP TABLE 시 해당 테이블에 종속된 모든 인덱스, 룰, 트리거, 제약조건도 함께 삭제
조이0226
2023. 5. 3. 10:16
DROP TABLE 명령은 현재 데이터베이스에서 지정한 테이블을 삭제한다.
해당 테이블의 소유주이거나, 해당 스키마의 소유주이거나 슈퍼 유저만 테이블을 삭제 할 수 있다.
테이블은 그대로 두고 테이블의 자료를 삭제 하려고 할 때는 DELETE 명령이나, TRUNCATE 명령을 사용한다.
DROP TABLE 명령은 해당 테이블에 종속된 모든 인덱스, 룰, 트리거, 제약조건도 함께 삭제 한다.
반면, 삭제하려는 테이블이 다른 객체에서 사용되고 있는 경우라면, CASCADE 옵션을 사용해서 관련 모든 객체들을 함께 지우려고 할 때만 삭제 할 수 있다. (CASCADE 옵션을 쓰게 되면 해당 뷰는 삭제 될 것이고, 참조키 제약조건은 해당 제약조건만 삭제된다.)
테이블 생성
CREATE TABLE developers (
book_id INTEGER PRIMARY KEY,
date DATE,
name VARCHAR(80)
);
인덱스 생성
CREATE INDEX developers_name_index1 ON developers (name);
결과
테이블 삭제
drop table developers;
결과
drop table 후 생성되어 있던 인덱스가 삭제됨