sql >> Databáze >  >> RDS >> PostgreSQL

Zabijte postgresql relaci/připojení

K ukončení připojení můžete použít pg_terminate_backend(). Abyste mohli tuto funkci používat, musíte být superuživatel. Toto funguje na všech operačních systémech stejně.

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

Před provedením tohoto dotazu musíte ZRUŠIT oprávnění CONNECT, abyste se vyhnuli novým připojením:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

Pokud používáte Postgres 8.4-9.1, použijte procpid místo 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. Vložte aktualizaci uloženou proc na SQL Server

  2. Nelegální instrukce:4 při spuštění Django

  3. Oracle convert unix epoch time to date

  4. Laravel Eloquent vybere všechny řádky s max. created_at