はじめに
PostgreSQLには、データベースを削除するための2つのコマンドラインメソッドが用意されています。 DROPDATABASE
を使用します。 ステートメントまたはシェルユーティリティ。
未使用のデータベースを削除することは良い習慣であり、ワークスペースをクリーンに保つのに役立ちます。ただし、既存のPostgreSQLデータベースを削除すると、そのデータベースのすべてのカタログエントリとデータが削除されることに注意してください。
PostgreSQLでデータベースを削除する方法については、読み続けてください。
前提条件
- PostgreSQL 10以降がインストールおよび構成されている(UbuntuまたはWindowsのガイドに従ってください。すでにインストールされている場合は、システムのPostgreSQLバージョンを確認してください)。
- sudo権限を持つ端末へのアクセス。
DROPDATABASEステートメント
重要 :データベースを削除できるのはデータベースの所有者だけです。
PostgreSQLデータベースを削除する最初の方法は、次のSQLステートメントを使用することです。
DROP DATABASE <database name>;
このコマンドは、データベース情報とカタログエントリを含むディレクトリを削除します。 DROP DATABASE
を実行できるのはデータベース所有者だけです。 指図。現在データベースを使用している人がいる場合、コマンドは実行されません。
DROP DATABASE
の方法を確認するには 動作します。次の手順を実行します:
1.ターミナルを開きます( CTRL + ALT + T 。
2. PostgreSQLに接続します:
sudo -i -u postgres psql
3.例のデータベースを作成します:
CREATE DATABASE example;
端末は実行されたステートメントを出力します。
4.すべてのデータベースを次のように一覧表示します:
\l
前の手順のデータベースがリストに表示されます。
5.次のコマンドでデータベースを削除します:
DROP DATABASE example;
出力には、実行されたステートメントが表示されます。
6.すべてのデータベースを再度一覧表示します:
\l
サンプルデータベースはリストに表示されなくなります。
存在する場合
IF EXISTS
このオプションは、 DROP DATABASE
のすべてのバージョンで利用できます。 利用可能です。 IF EXISTS
を使用した完全なコマンド構文 オプションは次のとおりです:
DROP DATABASE IF EXISTS <database name>;
このオプションは、データベースを削除する前に、まずデータベースが存在するかどうかを確認します。データベースが存在する場合、コマンドはデータベースを削除します。ただし、データベースが存在しない場合、コマンドは有益な通知メッセージを出力します。
コマンドがどのように機能するかをテストするには、以下の手順に従います。
1.サンプルデータベースを作成します:
CREATE DATABASE example;
2. IF EXISTS
を使用してデータベースを削除します オプション:
DROP DATABASE IF EXISTS example;
結果は、 DROP DATABASE
を使用した場合と同じです。 データベースが存在する場合。
3.データベースは使用できなくなります。コマンドを再実行して、出力を確認します。
DROP DATABASE IF EXISTS example;
データベースが存在しないことを示す通知メッセージが出力されます。
4. IF EXISTS
の使用の違いを確認するには オプションを省略して、次のコマンドを実行します。
DROP DATABASE example;
DROP DATABASE
を使用する IF EXISTS
なし 存在しないデータベースのオプションはエラーメッセージをスローします。
WITH(FORCE)
WITH(FORCE)
このオプションは、PostgreSQLバージョン13以降で使用できます。
DROP DATABASE
メソッドが使用中の場合、データベースは削除されません。データベースが使用中の場合、端末はデータベースセッションが開いているというエラーを出力します。
WITH(FORCE)
を追加します セッションを強制的に閉じてデータベースを削除するオプション:
DROP DATABASE <database name> WITH (FORCE);
可能であれば、Postgresはユーザーのセッションを閉じ、データベースを強制的に削除します。
dropdbユーティリティ
dropdbシェルユーティリティは、 DROP DATABASE
のラッパーです。 指図。事実上、2つの方法は同じです。ただし、dropdbには、データベースをリモートで削除するなどの追加オプションがあります。
基本的な構文は次のとおりです。
dropdb <connection parameters> <options> <database name>
オプション
次の表は、dropdbユーティリティを使用するときに可能なすべてのオプションを示しています。
オプション | タイプ | 説明 |
---|---|---|
-e -エコーコード> | オプション | dropdbがサーバーに送信するコマンドを出力します。 |
-f -force | オプション | データベースを削除する前に、現在のすべての接続を終了しようとします。 |
-i -インタラクティブ | オプション | データベースの削除を実行する前に検証を促します。 |
-V -バージョン | オプション | コンソールはユーティリティバージョンを出力します。 |
-if-exists | オプション | データベースが存在しない場合、エラーの代わりに通知を出力します。 |
-? -ヘルプ | オプション | ヘルプメニューを表示します。 |
-h -host = | 接続パラメータ | サーバーが実行されているマシンのホスト名を指定します。 |
-p -port = | 接続パラメータ | サーバーがリッスンしているTCPポートを指定します。 |
-U<ユーザー名> -ユーザー名<ユーザー名>コード> | 接続パラメータ | 指定されたユーザーとして接続します。 |
-w -パスワードなしコード> | 接続パラメータ | パスワードプロンプトを発行しないでください。ユーザーがいない場合のバッチおよびスクリプトジョブに役立ちます。 |
-W -パスワードコード> | 接続パラメータ | パスワードプロンプトを強制します。このオプションがないと、パスワードが必要な場合、サーバーは接続の試行を失います。 |
-maintenance-db=<データベース名> | 接続パラメータ | このオプションは、データベース名の接続を指定します。 |
たとえば、次のコマンドを試して、dropdbが -i
でどのように機能するかを確認します。 および-e
オプション:
dropdb -i -e example
-i
のため、プログラムは削除の前に確認を求めます タグ。
yを押します 確認するために。プログラムは、生成されたコマンドをサーバーに出力します。データベースが存在しないため、プログラムはエラーをスローして終了します。