[解決済み] PostgreSQLデータベースにアクティブな接続がある場合、そのデータベースを削除する方法は?
2022-03-25 14:35:11
質問
PostgreSQLのデータベースを削除するスクリプトを書く必要があります。多くの接続があるかもしれませんが、スクリプトはそれを無視しなければなりません。
標準の
DROP DATABASE db_name
クエリーは、オープンなコネクションがある場合には機能しません。
どうすれば解決できますか?
どのように解決するのですか?
この場合、あなた以外の既存の接続は削除されます。
クエリ
pg_stat_activity
を実行し、killしたいpidの値を取得した後、次のコマンドを実行します。
SELECT pg_terminate_backend(pid int)
を送信します。
PostgreSQL 9.2以上。
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
AND pid <> pg_backend_pid();
PostgreSQL 9.1 およびそれ以下。
SELECT pg_terminate_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
AND procpid <> pg_backend_pid();
一度全員を切断したら、切断してDROP DATABASEコマンドを発行する必要があります。
の名前を変更したことに注意してください。
procpid
カラムを
pid
. 参照
このメーリングリストのスレッド
.
関連
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] PostgreSQLでデータベースのコピーを作成する
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み] PostgreSQLで更新+結合を行うには?
-
[解決済み] PostgreSQLデータベースへのSQLダンプのインポート
-
[解決済み] Postgresqlで見出し付きのテーブルをCSVで出力する方法は?
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み】PostgreSQLでアクティブな接続を一覧表示するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのJSONBのマッチングと交差の問題について
-
postgresのjsonbプロパティの利用について
-
Postgresqlのデータベース権限まとめ
-
pgAdmin for postgreSQLでサーバーのデータをバックアップする方法
-
PostgreSQL] アクティブリンクのあるデータベースを削除する方法
-
[解決済み] PostgreSQL 自動インクリメント
-
[解決済み] PostgreSQL で "use database_name" コマンドを使用する。
-
[解決済み] postgresql のセッション/接続を切断する
-
[解決済み] Postgresqlで見出し付きのテーブルをCSVで出力する方法は?
-
[解決済み] Postgres でシーケンスをリセットし、id 列を新しいデータで埋めるにはどうすればよいですか?