ホームページ  >  記事  >  バックエンド開発  >  現在接続している Postgres データベースを削除するにはどうすればよいですか?

現在接続している Postgres データベースを削除するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 20:18:03290ブラウズ

How to Drop a Postgres Database You're Currently Connected To?

Postgres で接続されたデータベースを削除

現在接続しているデータベースを削除しようとしたときにエラーが発生しました: "pq:現在開いているデータベースを削除できません。」このエラーは、データベースへのアクティブな接続があるデータベースの削除を禁止する Postgres の予期された動作に起因します。

データベースを削除すると、データベースを参照している開いているすべての接続が無効になるため、この動作は理にかなっています。データベースを正常に削除するには、アクティブな接続が存在しないことを確認する必要があります。

推奨されるアプローチ

推奨されるアプローチは、別のデータベースに接続して DROP DATABASE コマンドを実行することです。そのつながりから。これにより、削除するデータベースへの開いている接続がないことが保証されます。

クライアントの強制切断

他のクライアントがデータベースに接続している状況の場合ドロップする必要がある場合は、強制的に切断できます。これにはスーパーユーザー権限が必要であることに注意してください。

PostgreSQL バージョン 9.2 より前の場合:

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';

PostgreSQL バージョン 9.2 以降の場合:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';

すべてのクライアントが強制的に切断されたら、次のことができます。別のデータベースに接続し、DROP DATABASE コマンドを再度実行してください。

追加の注意

特定のコード例では、DROP DATABASE の実行後に接続を閉じようとしています。指示。この手順は不要であり、予期しない動作を引き起こす可能性があります。 DROP DATABASE コマンドを実行する前に別のデータベースに接続するだけで、削除したデータベースへの接続が正常に閉じられます。

以上が現在接続している Postgres データベースを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。