sql >> Database teknologi >  >> RDS >> PostgreSQL

Dræb en postgresql-session/forbindelse

Du kan bruge pg_terminate_backend() til at afbryde en forbindelse. Du skal være superbruger for at bruge denne funktion. Dette fungerer på samme måde på alle operativsystemer.

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'
    ;

Før du udfører denne forespørgsel, er du nødt til at TILBAGE CONNECT-rettighederne for at undgå nye forbindelser:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

Hvis du bruger Postgres 8.4-9.1, brug procpid i stedet for pid

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. Fordele og ulemper ved at bruge SqlCommand Prepare i C#?

  2. adskil kommaseparerede værdier og gem i tabel i sql server

  3. MySQL:Vælg alle datoer i et interval, selvom der ikke er nogen registreringer til stede

  4. Test af ODBC-laget