PostgreSQL | 데이터베이스(Database) | 데이터베이스 삭제 (DROP DATABASE)

DROP DATABASE 명령을 사용하여 생성 된 데이터베이스를 삭제하는 방법에 대해 설명합니다.

데이터베이스 삭제

생성된 데이터베이스를 삭제하려면 DROP DATABASE 명령을 사용한다. 형식은 다음과 같다.

DROP DATABASE [ IF EXISTS ] name

삭제할 데이터베이스 이름(name)을 지정하여 데이터베이스를 삭제한다.

데이터베이스를 삭제하려면 명령을 수행하는 역할이 수퍼 유저이거나 데이터베이스 소유자여야 합니다. 또한 명령을 실행하려는 역할이나 다른 역할이 삭제하려는 데이터베이스에 연결되어 있는 동안은 제거할 수 없다. 삭제하려는 데이터베이스와 다른 데이터베이스에 연결하여 제거해야 한다. (다른 데이터베이스에 연결하는 방법은 “지정된 데이터베이스에 연결“를 참조하도록 한다)

그럼 실제로 해보도록 하자. 생성된 devkuma2 데이터베이스를 제거한다. 다음과 같이 실행한다.

postgres=# drop database devkuma2;
DROP DATABASE
postgres=#

데이터베이스가 삭제되었다.

그러고 데이터베이스 목록을 표시하여 확인해 본다.

postgres=# \l
                                      데이터베이스 목록
   이름    |  소유주  | 인코딩 |     Collate      |      Ctype       |      액세스 권한
-----------+----------+--------+------------------+------------------+-----------------------
 devkuma   | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 postgres  | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 rabbit    | orange   | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 sample    | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 template0 | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
           |          |        |                  |                  | postgres=CTc/postgres
 template1 | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
           |          |        |                  |                  | postgres=CTc/postgres
(6개 행)


postgres=#

방금 삭제한 devkuma2는 데이터베이스 목록에 표시되지 않는 것으로 확인할 수 있다.

연결된 데이터베이스를 삭제하려고 하면 어떻게되는지 확인해 보도록 하다. devkuma 데이터베이스에 연결한다.

postgres=# \c devkuma
접속정보: 데이터베이스="devkuma", 사용자="postgres".
devkuma=#

mydb 데이터베이스에 연결되어 있는 상태에서 devkuma 데이터베이스를 삭제해 본다.

devkuma=# drop database devkuma;
오류:  현재 열려 있는 데이터베이스는 삭제할 수 없습니다
devkuma=#

다음과 같이 “오류: 현재 열려 있는 데이터베이스는 삭제할 수 없습니다“라고 오류가 표시되고 데이터베이스 삭제에 실패한다.

이처럼 현재 연결되어있는 데이터베이스를 삭제할 수 없다.

여기까지 DROP DATABASE 명령을 사용하여 데이터베이스를 삭제하는 방법에 대해 알아보았다.