PostgreSQL | データベース | データベースの削除(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=#
devkuma データベースに接続している状態で、devkuma データベースを削除してみる。
devkuma=# drop database devkuma;
오류: 현재 열려 있는 데이터베이스는 삭제할 수 없습니다
devkuma=#
次のように「오류: 현재 열려 있는 데이터베이스는 삭제할 수 없습니다」というエラーが表示され、データベースの削除に失敗する。
このように、現在接続しているデータベースは削除できない。
–
ここまで、DROP DATABASE コマンドを使用してデータベースを削除する方法について説明した。