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

Hvordan dropper man en PostgreSQL-database, hvis der er aktive forbindelser til den?

Dette vil fjerne eksisterende forbindelser undtagen din:

Forespørgsel pg_stat_activity og få de pid-værdier, du vil dræbe, udsted derefter SELECT pg_terminate_backend(pid int) til dem.

PostgreSQL 9.2 og nyere:

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 og derunder:

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 afbryder forbindelsen til alle, bliver du nødt til at afbryde forbindelsen og udstede kommandoen DROP DATABASE fra en forbindelse fra en anden database, også kendt som den, du forsøger at afbryde.

Bemærk omdøbningen af ​​procpid kolonne til pid . Se denne postlistetråd.



  1. Fejl ved push af data til Heroku:tidszoneforskydning uden for rækkevidde

  2. Sorter efter ugedag fra mandag til søndag

  3. Virkningen af ​​at definere VARCHAR2-søjle med større længde

  4. Sådan bestemmes den autogenererede primærnøgle, der bruges som fremmednøgle til en anden tabel