PostgreSQL 기초강의, PostgreSQL 기초강좌
65강 SQL 초석 다지기 : PostgreSQL DROP TABLE
SQL 초석 다지기 65강 시작합니다.
이번 시간에는
▶ PostgreSQL DROP TABLE
에 대해서 알아보는 시간입니다.
요약: 이번 강의에서는 DROP TABLE 문을 사용하여 데이터베이스에서 기존 테이블을 제거하는 방법을 배웁니다.
Introduction to PostgreSQL DROP TABLE statement
데이터베이스에서 테이블을 삭제하려면 다음과 같이 DROP TABLE 문을 사용합니다.
DROP TABLE [IF EXISTS] table_name
[CASCADE | RESTRICT];
이 구문에서:
- 먼저 DROP TABLE 키워드 뒤에 삭제할 테이블의 이름을 지정합니다.
- 둘째, 테이블이 있는 경우에만 IF EXISTS 옵션을 사용하여 테이블을 제거합니다.
- 존재하지 않는 테이블을 제거하면 PostgreSQL에서 오류가 발생합니다. 이러한 상황을 방지하려면 IF EXIST 옵션을 사용할 수 있습니다.
제거하려는 테이블이 뷰, 트리거, 함수 및 저장 프로시저와 같은 다른 개체에서 사용되는 경우 DROP TABLE은 테이블을 제거할 수 없습니다. 이 경우 두 가지 옵션이 있습니다.
- CASCADE 옵션을 사용하면 테이블과 테이블의 종속 개체를 제거할 수 있습니다.
- RESTRICT 옵션은 테이블에 종속된 개체가 있으면 제거를 거부합니다. DROP TABLE 문에 옵션을 명시적으로 지정하지 않은 경우 기본값이 RESTRICT 옵션입니다.
여러 테이블을 한 번에 제거하려면 DROP TABLE 키워드 뒤에 쉼표로 구분된 테이블 목록을 배치합니다.
DROP TABLE [IF EXISTS]
table_name_1,
table_name_2,
...
[CASCADE | RESTRICT];
테이블을 삭제하려면 슈퍼유저, 스키마 소유자 또는 테이블 소유자의 role(역할)이 있어야 합니다.
PostgreSQL DROP TABLE examples
DROP TABLE 문을 사용하는 몇 가지 예를 들어 보겠습니다.
1) Drop a table that does not exist
다음 문은 데이터베이스에서 author라는 테이블을 제거합니다.
DROP TABLE author;
author 테이블이 없기 때문에 PostgreSQL에서 오류가 발생합니다.
오류를 방지하기 위해 IF EXISTS 옵션을 다음과 같이 사용할 수 있습니다.
DROP TABLE IF EXISTS author;
출력에서 분명히 알 수 있듯이, PostgreSQL은 오류 대신 통지를 발행합니다.
2) Drop a table that has dependent objects
다음은 authors 및 pages라는 새 테이블을 생성하는 방법입니다.
CREATE TABLE authors (
author_id INT PRIMARY KEY,
firstname VARCHAR (50),
lastname VARCHAR (50)
);
CREATE TABLE pages (
page_id serial PRIMARY KEY,
title VARCHAR (255) NOT NULL,
contents TEXT,
author_id INT NOT NULL,
FOREIGN KEY (author_id)
REFERENCES authors (author_id)
);
다음 문은 DROP TABLE을 사용하여 authors 테이블을 삭제합니다.
DROP TABLE IF EXISTS authors;
pages 테이블의 제약 조건은 authors 테이블에 의존적이기 때문에 PostgreSQL에서 다음 오류 메시지를 발생시킵니다.
이 경우 authors 테이블을 삭제하기 전에 먼저 모든 종속 개체를 제거하거나 다음과 같이 CASCADE 옵션을 사용해야 합니다.
DROP TABLE authors CASCADE;
CASCADE 옵션을 사용하면, authors 테이블의 주키를 외래키로 가지는 자식테이블들에서 제약조건을 제거합니다.
PostgreSQL은 authors 테이블을 삭제하고 pages 테이블의 제약 조건을 제거합니다.
DROP TABLE 문이 삭제되는 테이블의 종속 개체를 제거하면 다음과 같은 알림이 표시됩니다.
3) Drop multiple tables
다음 문장은 데모용으로 두 가지 table을 작성합니다.
CREATE TABLE tvshows(
tvshow_id INT GENERATED ALWAYS AS IDENTITY,
title VARCHAR,
release_year SMALLINT,
PRIMARY KEY(tvshow_id)
);
CREATE TABLE animes(
anime_id INT GENERATED ALWAYS AS IDENTITY,
title VARCHAR,
release_year SMALLINT,
PRIMARY KEY(anime_id)
);
다음 예제에서는 단일 DROP TABLE 문을 사용하여 tvshows 및 animes 테이블을 삭제합니다.
DROP TABLE tvshows, animes;
2개의 테이블이 동시에 삭제됩니다.
- 요약
- 테이블을 삭제하려면 DROP TABLE 문을 사용합니다.
- 테이블과 테이블의 모든 종속 개체를 삭제하려면 CASCADE 옵션을 사용합니다.
수고하셨습니다.
본 강의는 PostgreSQL Tutorial을 참조합니다. https://www.postgresqltutorial.com/ |
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
67강 SQL 초석 다지기 : PostgreSQL TRUNCATE TABLE (67) | 2023.01.10 |
---|---|
66강 SQL 초석 다지기 : PostgreSQL TEMPORARY TABLE (117) | 2023.01.09 |
64강 SQL 초석 다지기 : PostgreSQL RENAME COLUMN (123) | 2023.01.07 |
63강 SQL 초석 다지기 : PostgreSQL Change Column Type (93) | 2023.01.06 |
62강 SQL 초석 다지기 : PostgreSQL DROP COLUMN (76) | 2023.01.05 |
댓글