sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres släpp databasfel:pq:kan inte släppa den för närvarande öppna databasen

Eftersom du försöker köra dropDb kommandot på databasen, som du har öppen anslutning till.

Enligt postgres dokumentation:

Detta är vettigt, för när du släpper hela databasen blir all öppen anslutning som refererar till den databasen ogiltig, så det rekommenderade tillvägagångssättet är att ansluta till en annan databas och köra det här kommandot igen.

Om du står inför en situation där en annan klient är ansluten till databasen och du verkligen vill släppa databasen, kan du med tvång koppla bort alla klienter från just den databasen.

Till exempel att med tvång koppla bort alla klienter från databasen mydb :

Om PostgreSQL <9.2

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';

Annas

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';

Obs! Detta kommando kräver superanvändarbehörigheter.

Sedan kan du ansluta till en annan databas och köra dropDb kommandot igen.



  1. Hur gör man begränsningar för främmande nyckel pålitliga?

  2. Kapslade relationer med Sequelize

  3. Hur prioriterar man vissa frågor i MySQL?

  4. MySQL Alter lagrad procedur