Ich verwende die PostgreSql-Version:
postgres=# select version();
version
-------------------------------------------------------------
PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 64-bit
(1 row)
Ich hatte eine Verbindung zu einer Datenbank von postgres=#
bis newdb=#
... Jetzt bin ich in der newdb=#
Datenbank. Ich möchte die Verbindung trennen und zur postgres=#
Datenbank zurückkehren.
Wie macht man das ?
Ich habe es mit versucht disconnect newdb;
aber es gibt erroe als ::
postgres=# create database newdb;
CREATE DATABASE
postgres=# \c newdb;
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
You are now connected to database "newdb" as user "postgres".
newdb=# disconnect newdb;
ERROR: syntax error at or near "disconnect"
LINE 1: disconnect newdb;
^
newdb=#
Es funktioniert nicht. Gibt es einen anderen Weg, dies zu tun? Oder irre ich mich in irgendetwas?
postgresql
postgresql-9.1
postgresql-9.2
09Q71AO534
quelle
quelle
psql
Dokumentation überprüft ? Ein Hinweis - es gibt keindisconnect
SQL oderpsql
Befehl.\c
Antworten:
Es ist einfach, schauen Sie sich nur das Beispiel an.
- meine Datenbanken
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------+--------------------------- francs | postgres | UTF8 | C | C | =Tc/postgres + | | | | | postgres=CTc/postgres + | | | | | francs=C*T*c*/postgres + | | | | | select_only=c/francs postgres | postgres | UTF8 | C | C | source_db | postgres | UTF8 | C | C | =Tc/postgres + | | | | | postgres=CTc/postgres + | | | | | source_db=C*T*c*/postgres template0 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)
- Wechseln Sie als Rollenfranken zu DB-Franken
postgres=# \c francs francs You are now connected to database "francs" as user "francs".
- Wechseln Sie zu db postgres als Rolle postgres
francs=> \c postgres postgres You are now connected to database "postgres" as user "postgres". postgres=#
- von db trennen
postgres=# \q
quelle
In psql gibt es keine 'Trennung'. Anstatt die Verbindung zu Ihrer newdb-Datenbank zu trennen, stellen Sie eine Verbindung mit der Standard-Postgres-Datenbank her.
Erstellen Sie die neue Datenbank und stellen Sie eine Verbindung her:
postgres=# create database newdb; CREATE DATABASE postgres=# \c newdb You are now connected to database "newdb" as user "postgres". newdb=#
Listen Sie die Anzahl der Verbindungen in newdb auf:
newdb=# select datname,numbackends from pg_stat_database where datname='newdb'; datname | numbackends ---------+------------- newdb | 1
Anstatt die Verbindung zu trennen, stellen Sie jetzt einfach eine Verbindung mit der Standard-Postgres-Datenbank her.
newdb=# \c postgres You are now connected to database "postgres" as user "postgres". postgres=#
Jetzt gibt es keine Verbindungen auf newdb:
postgres=# select datname,numbackends from pg_stat_database where datname='newdb'; datname | numbackends ---------+------------- newdb | 0
quelle