sql >> データベース >  >> RDS >> PostgreSQL

postgresqlセッション/接続を強制終了します

    pg_terminate_backend()を使用して接続を切断できます。この関数を使用するには、スーパーユーザーである必要があります。これは、すべてのオペレーティングシステムで同じように機能します。

    SELECT 
        pg_terminate_backend(pid) 
    FROM 
        pg_stat_activity 
    WHERE 
        -- don't kill my own connection!
        pid <> pg_backend_pid()
        -- don't kill the connections to other databases
        AND datname = 'database_name'
        ;
    

    このクエリを実行する前に、新しい接続を回避するためにCONNECT権限を取り消す必要があります。

    REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;
    

    Postgres 8.4-9.1を使用している場合は、pidの代わりにprocpidを使用してください

    SELECT 
        pg_terminate_backend(procpid) 
    FROM 
        pg_stat_activity 
    WHERE 
        -- don't kill my own connection!
        procpid <> pg_backend_pid()
        -- don't kill the connections to other databases
        AND datname = 'database_name'
        ;
    


    1. SQLServerデータベースで有効/無効なチェック制約のリストを取得する方法-SQLServer/TSQLチュートリアルパート86

    2. 連続範囲でグループ化するにはどうすればよいですか

    3. pyodbcおよびMSSQLServerとの1つの接続で複数のカーソルを使用できますか?

    4. T-SQLは、2つの日付の間の稼働日数を取得します