DROP DATABASE — データベースを削除する
DROP DATABASE [ IF EXISTS ]name
[ [ WITH ] (option
[, ...] ) ] ここでoption
は以下の通りです。 FORCE
DROP DATABASE
は、データベースを削除します。
そのデータベースの項目をカタログから削除し、データを保存していたディレクトリを削除します。
データベースの所有者のみがこのコマンドを実行することができます。
対象とするデータベースに接続している時は実行できません
(このコマンドを実行する時は、postgres
や他のデータベースに接続してください)。
また、他のユーザが対象とするデータベースに接続している時は、以下に書かれたFORCE
オプションを使わない限り、このコマンドは失敗します。
DROP DATABASE
は元に戻すことができません。
十分注意して使用してください。
IF EXISTS
データベースが存在しない場合でもエラーになりません。 この場合注意メッセージが発行されます。
name
削除するデータベースの名前です。
FORCE
対象とするデータベースへの既存の接続をすべて終了することを試みます。 対象とするデータベースにプリペアドトランザクション、実行中の論理レプリケーションスロット、サブスクリプションが存在する場合には終了しません。
これは、現在のユーザに他の接続を終了する権限がない場合には失敗します。
要求される権限は、9.27.2に書かれているpg_terminate_backend
と同じです。
これは接続を終了できない場合も失敗します。
DROP DATABASE
はトランザクションブロックの内部では実行できません。
対象とするデータベースに接続している間は、このコマンドを実行することができません。 したがって、このコマンドのラッパであるdropdbプログラムを使用する方がより便利かもしれません。
標準SQLにはDROP DATABASE
文はありません。