Wie Datenbanken in psql wechseln?
-
08-10-2019 - |
Frage
In MySQL habe ich use database_name;
Was ist der psql Äquivalent?
Lösung
In PostgreSQL, können Sie die \connect
Metabefehl der Client-Tool psql:
\connect DBNAME
oder kurz:
\c DBNAME
Andere Tipps
Sie können mit \c <database>
oder \connect <database>
mit einer Datenbank verbinden.
Am PSQL Aufforderung können Sie tun:
\connect (or \c) dbname
Sie können die Verbindung mit
\c dbname
Sie können die Datenbank auswählen, wenn sie mit psql verbinden. Das ist praktisch, wenn es von einem Skript:
sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
Mit psql Meta-Befehl \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo
(siehe Dokumentation ) .
Beispiel: \c MyDatabase
Beachten Sie, dass die \c
und \connect
Meta-Befehle sind case-sensitive .
\l
für Datenbanken
\c
Database Umschaltung in den db
\df
für Verfahren in bestimmten Datenbank gespeichert
Verwenden Sie unter Anweisung Schalter auf verschiedene Datenbanken innerhalb Wohnsitz Ihre postgreSQL RDMS
\c databaseName
Wenn Sie auf eine bestimmte Datenbank beim Start wechseln wollen, versuchen Sie
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql vigneshdb;
In der Standardeinstellung Postgres läuft auf dem Port 5432. Wenn es auf einem anderen läuft, stellen Sie sicher, dass Sie den Port in der Befehlszeile zu übergeben.
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p2345 vigneshdb;
Mit einem einfachen Alias, wir können es praktisch machen.
Erstellen Sie einen Alias ??in Ihrem .bashrc
oder .bash_profile
function psql()
{
db=vigneshdb
if [ "$1" != ""]; then
db=$1
fi
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p5432 $1
}
Ausführen psql
in der Befehlszeile, schaltet er Datenbank auf Standard; psql anotherdb
, es schaltet auf den db mit dem Namen in Argumente bei der Inbetriebnahme.
Obwohl nicht explizit in der Frage erwähnt, ist der Zweck, zu einer bestimmten Schema / Datenbank zu verbinden.
Eine andere Möglichkeit ist, um direkt mit dem Schema zu anschließen. Beispiel:
sudo -u postgres psql -d my_database_name
Quelle von man psql
:
-d dbname
--dbname=dbname
Specifies the name of the database to connect to. This is equivalent to specifying dbname as the first non-option argument on the command line.
If this parameter contains an = sign or starts with a valid URI prefix (postgresql:// or postgres://), it is treated as a conninfo string. See Section 31.1.1, “Connection Strings”, in the
documentation for more information.
Sie können die Verbindung mit
\ c dbname
Wenn Sie möchten, dass alle möglichen Befehle für POSTGRESQL oder SQL folgt diesen Schritten, um zu sehen:
-
Schienen dbconsole (Sie werden redericted Ihre aktuelle ENV-Datenbank)
-
\? (Für POSTGRESQL Befehle)
oder
-
\ h (Für SQL-Befehle)
-
Drücken Sie Q Beenden
Sie können auch auf eine Datenbank mit einer anderen Rolle wie folgt an.
\connect DBNAME ROLENAME;
oder
\c DBNAME ROLENAME;
Wie in den anderen Antworten erwähnt, müssen Sie Verbindung zu ändern, eine andere Datenbank verwenden.
arbeitet Postgres mit Schemata. Sie können mehrere Systeme in einer einzigen Datenbank. Also, wenn Sie innerhalb derselben Datenbank arbeiten, und ändern möchten Schema können Sie tun:
SET SCHEMA 'schema_name';