logo

[SQLite] 테이블 삭제

 

DROP TABLE

SQLite에서 DROP TABLE 문은 CREATE TABLE 문을 사용하여 추가된 테이블을 데이터베이스에서 제거하는 데 사용됩니다. 이 명령어로 지정된 테이블 이름에 해당하는 테이블은 데이터베이스 스키마와 디스크 파일에서 완전히 제거됩니다. 한번 삭제된 테이블은 복구할 수 없으며, 테이블과 연관된 모든 인덱스와 트리거도 함께 삭제됩니다.

 

IF EXISTS

IF EXISTS 절은 선택적으로 사용할 수 있으며, 지정된 테이블이 존재하지 않을 경우에 발생할 수 있는 오류를 억제합니다. 즉, IF EXISTS 절을 사용하면 테이블이 존재하지 않아도 DROP TABLE 명령이 오류 없이 실행됩니다.

DROP TABLE IF EXISTS Employees;

이 예시에서는 Employees라는 이름의 테이블을 삭제합니다. 만약 Employees 테이블이 존재하지 않는 경우에도 IF EXISTS 절로 인해 오류가 발생하지 않습니다.

SQLite에서 DROP TABLE 명령을 사용할 때는 데이터와 관련된 모든 정보가 영구적으로 제거된다는 점을 명심해야 하며, 필요한 경우 데이터를 백업하는 것이 좋습니다.

 

외래 키 제약 조건

DROP TABLE 명령은 테이블을 데이터베이스 스키마에서 제거하기 전에 묵시적인 DELETE FROM 명령을 수행합니다. 이 과정은 테이블에 연결된 모든 트리거를 먼저 데이터베이스 스키마에서 삭제한 후, 묵시적 DELETE FROM 명령을 실행하기 때문에, 어떤 트리거도 발생하지 않습니다.

그러나 묵시적 DELETE FROM 명령은 설정된 모든 외래 키 동작을 실행하게 됩니다. DROP TABLE 명령의 일부로 실행된 묵시적 DELETE FROM 명령이 즉시적 외래 키 제약 조건을 위반하는 경우, 오류가 반환되며 테이블은 삭제되지 않습니다. 묵시적 DELETE FROM 명령으로 인해 발생한 연기된 외래 키 제약 조건 위반이 트랜잭션 커밋 시점에 여전히 존재하는 경우, 커밋 시점에 오류가 반환됩니다.

단, SQLite에서 외래 키 제약 조건은 기본적으로 비활성화(disabled) 상태로 설정되어 있습니다.

Previous
외래 키