PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zabij sesję/połączenie postgresql

Możesz użyć pg_terminate_backend() do zabicia połączenia. Aby korzystać z tej funkcji, musisz być superużytkownikiem. Działa to tak samo we wszystkich systemach operacyjnych.

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

Przed wykonaniem tego zapytania musisz ODWOŁAĆ uprawnienia CONNECT, aby uniknąć nowych połączeń:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

Jeśli używasz Postgresa 8.4-9.1, użyj procpid zamiast 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SequelizeConnectionError:samopodpisany certyfikat

  2. Dodaj dni do daty w PostgreSQL

  3. XMLTABLE w PostgreSQL

  4. Czym różni się PostgreSQL od MySQL?

  5. Gdzie warunek dla połączonego stołu w Sequelize ORM