sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur släpper man en PostgreSQL-databas om det finns aktiva anslutningar till den?

Detta kommer att ta bort befintliga anslutningar förutom dina:

Fråga pg_stat_activity och hämta de pid-värden du vill döda, utfärda sedan SELECT pg_terminate_backend(pid int) till dem.

PostgreSQL 9.2 och senare:

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 och senare:

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();

När du kopplar bort alla måste du koppla från och utfärda kommandot DROP DATABASE från en anslutning från en annan databas, även om den inte är den du försöker släppa.

Notera bytet av procpid kolumnen till pid . Se denna e-postlistatråd.



  1. Hur man lägger till ett sidhuvud och en sidfot i ett formulär i Microsoft Access

  2. MYSQL importera data från csv med LOAD DATA INFILE

  3. Hur man uppdaterar rader med ett slumpmässigt datum

  4. Lägg till timmar till ett tidsvärde i PostgreSQL