PostgreSQL コマンドラインを使用してデータベースを削除する

⚡ スマートサマリー

PostgreSQL DROP DATABASE コマンドは、データベースとそのすべてのカタログエントリおよびデータファイルを完全に削除します。このコマンドは、psql シェルから実行することも、pgAdmin でデータベースを視覚的に削除することも、dropdb コマンドを使用してリモートから削除することもできます。

  • ⚠️ 恒久的措置: DROP DATABASEコマンドは、すべてのカタログエントリとデータディレクトリを削除するため、この操作は元に戻すことができません。
  • 🔒 所有者のみ: データベースの所有者のみが削除でき、アクティブなセッションは対象データベースに接続できません。
  • 💻 SQLシェル: psqlでは、別のデータベースに接続した後、DROP DATABASE nameを実行し、\lを使用して削除を確認します。
  • 🛡️ IF EXISTS 条項: IF EXISTSを追加すると、データベースが存在しない場合にエラーではなく警告が返されます。
  • 🖱️ pgAdmin GUI: オブジェクトツリーでデータベースを右クリックし、「削除/ドロップ」を選択して、視覚的に削除を確認します。
  • 🌐 dropdbコマンド: dropdbコマンドラインユーティリティは、ホスト、ポート、確認などのオプションを指定して、リモートからデータベースを削除します。

PostgreSQL データベースの削除/削除

データベースをドロップイン PostgreSQL

その ドロップデータベース in PostgreSQL すべてのカタログ エントリとデータ ディレクトリを完全に削除するステートメントです。このコマンドはデータベース所有者のみが実行できます。誰かが対象データベースに接続している間は実行できません。 DROP DATABASE コマンドを実行するには、他のデータベースに接続する必要があります。

したがって、この操作を実行するときは特に注意する必要があります。

PostgreSQL DROP DATABASE 構文:

DROP DATABASE [IF EXISTS] name;

ここに:-

  • IF EXISTS: これはオプションのパラメータです。データベースが存在しない場合は、エラーではなく警告が表示されます。
  • name: 削除する DB 名を指定します。

見てみましょう PostgreSQL データベースをドロップするコマンドラインの動作例

PostgreSQL SQL シェルを使用したデータベースの削除 (コマンド ライン)

以下は、Postgres コマンド ラインでデータベースを削除する段階的なプロセスです。

ステップ1) コマンド \l を使用して、現在利用可能なデータベースを確認します。

PostgreSQL SQL シェルを使用してデータベースを削除する

ステップ2) Postgres でデータベースを削除するには、コマンドを入力します

drop database guru99

コマンド \l を使用して DB が削除されているかどうかを確認します

PostgreSQL SQL シェルを使用してデータベースを削除する

ステップ3) 同じデータベースを再度削除しようとすると、エラーが発生します。

PostgreSQL SQL シェルを使用してデータベースを削除する

ステップ4) IFexists 句を使用してデータベースを削除すると、警告が表示されます

drop database IF EXISTS guru99

PostgreSQL SQL シェルを使用してデータベースを削除する

PostgreSQL データベース PgAdmin の削除 (GUI)

ステップ1) データベース「guru99」を右クリックし、「削除/ドロップ」をクリックします。

PostgreSQL データベースの削除 PgAdmin

ステップ2) 確認のポップアップで「OK」をクリックします

PostgreSQL データベースの削除 PgAdmin

データベースが削除されます。

ドロップデータベースコマンド

Dropdb コマンドを使用すると、次のデータベースを削除できます。 PostgreSQL 遠隔で。ただし、使用するにはユーザーがデータベースの所有者である必要があります。 PostgreSQL deletedatabase コマンドを使用して、そのデータベースを削除します。

構文:

dropdb [option...] dbname
オプション 詳細説明
-e Dropdb が作成してサーバーに送信するコマンドをエコーし​​ます。
-i 破壊的なジョブを実行する前に確認プロンプトを表示する
-V このオプションを使用して、dropdb のバージョンを出力します。
-助けて Dropdb コマンドライン引数に関するヘルプを提供します。
-h ホスト サーバーが現在実行されているシステムのホストの名前を指定するのに役立ちます。
-pポート このオプションを使用すると、サーバーが接続を確立するTCPポートまたはローカルUnixドメインソケットファイルの拡張子を指定できます。
–if-exists データベースが存在しない場合、エラーではなく通知を発行します。
-U ユーザー名 接続するユーザー名。
-w パスワードのプロンプトが不要な場合は、このオプションを使用してください
-W ドロップ前にパスワードの入力を求めるには、このパラメータを使用します。ping データベース。
–maintenance-db=dbname ターゲットデータベースを削除するために接続するデータベースの名前を指定します。

PostgreSQL DROP DATABASE の例

ホストローマのポート99のサーバーの助けを借りて、検証を行いながらデータベースguru4565を破壊したいのですが、次のドロップデータベースを使用する必要があります。 PostgreSQL コマンド:

dropdb -p 4565 -h rome -i -e guru99

データベース「guru99」は完全に削除されます。

本気ですか? (y/n) y を選択すると、次のことができます。

ドロップデータベース guru99;

よくあるご質問

いいえ。DROP DATABASEコマンドはデータディレクトリを完全に削除するため、元に戻す機能はありません。復元は、削除前にバックアップ、ダンプファイル、または特定時点への復元が設定されていた場合にのみ可能です。

このエラーは、アクティブなセッションが接続されていることを意味します。セッションを切断するか、別のデータベースからプロセスIDに対してpg_terminate_backend()を実行してから、DROP DATABASEを再試行してください。現在接続中のデータベースを削除することはできません。

DROP DATABASEは、psqlまたはpgAdmin内で実行されるSQL文です。dropdbは、このSQL文をラップしたコマンドラインユーティリティで、ホスト、ポート、確認プロンプトなどのオプションを使用して、リモートからデータベースを削除できます。

AIは、正しいDROP DATABASEまたはdropdbコマンドを生成し、最初にバックアップを取るよう促し、IF EXISTS句を追加できます。また、削除前に閉じる必要があるアクティブな接続を一覧表示することもできます。ping.

AIは削除されたデータを復元することはできませんが、バックアップファイルやダンプファイルからの復元手順を案内したり、将来の偶発的なデータ損失を防ぐための特定時点復旧計画の作成を支援したりすることができます。