it-swarm.com.de

Wie wechselt man Datenbanken in psql?

In MySQL habe ich use database_name; verwendet

Was ist das psql-Äquivalent?

902
Blankman

In PostgreSQL können Sie den \connect meta-Befehl des Client-Tools psql verwenden:

\connect DBNAME

oder kurz:

\c DBNAME
1412
Will Hartung

Sie können sich mit \c <database> oder \connect <database> mit einer Datenbank verbinden.

175
meagar

Bei der PSQL-Eingabeaufforderung können Sie Folgendes tun: 

\connect (or \c) dbname
92

Sie können sich mit verbinden

\c dbname
24
Jeswin K Ninan

Sie können die Datenbank auswählen, wenn Sie sich mit psql verbinden. Dies ist praktisch, wenn Sie es von einem Skript aus verwenden:

Sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
23
Manel Clos

Verwenden des psql-Meta-Befehls \c or \connect [ dbname [ username ] [ Host ] [ port ] ] | conninfo (siehe documentation ).

Beispiel: \c MyDatabase

Beachten Sie, dass die Metakommandos \c und \connectGroß- und Kleinschreibung beachten.

9

\l für Datenbanken \c DatabaseName, um zu db \df für in einer bestimmten Datenbank gespeicherte Prozeduren zu wechseln

8
Ambrish Rajput

Verwenden Sie die folgende Anweisung, um zu anderen Datenbanken zu wechseln, die sich in

\c databaseName
6
Bilal Mahmood

Wenn Sie beim Start zu einer bestimmten Datenbank wechseln möchten, versuchen Sie es

/Applications/Postgres.app/Contents/Versions/9.5/bin/psql vigneshdb;

Postgres wird standardmäßig auf dem Port 5432 ausgeführt. Wenn er auf einem anderen Port ausgeführt wird, müssen Sie den Port in der Befehlszeile übergeben.

/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p2345 vigneshdb;

Mit einem einfachen Alias ​​können wir 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
}

Führen Sie psql in der Befehlszeile aus, um zur Standarddatenbank zu wechseln. psql anotherdb wechselt beim Start zur Datenbank mit dem Namen im Argument.

1
Vignesh Raja

Mit SQL können Sie die Datenbank in der Abfrage definieren. Warum also nicht einfach verwenden?

SELECT 
 *
FROM 
 database.table 

Dann müssen Sie die Datenbank nie "manuell auswählen".

Oder ein datenbankübergreifendes JOIN-Beispiel

SELECT 
 *
FROM 
 world.country
INNER JOIN 
 cms.user 
ON
 country.id = user.country_id
WHERE 
 country.isoCode = '<isoCode>'
0
Raymond Nijland

Sie können eine Verbindung herstellen mit

\ c Datenbankname

Wenn Sie alle möglichen Befehle für POSTGRESQL oder SQL sehen möchten, gehen Sie folgendermaßen vor:

  1. Rails dbconsole (Sie werden in Ihre aktuelle ENV-Datenbank umgeleitet)

  2. \? (Für POSTGRESQL-Befehle)

oder

  1. \ h (für SQL-Befehle)

  2. Drücken Sie Q zum Verlassen

0
Lakhani Aliraza

Obwohl nicht ausdrücklich in der Frage angegeben, besteht der Zweck darin, eine Verbindung zu einem bestimmten Schema/einer bestimmten Datenbank herzustellen.

Eine weitere Option ist die direkte Verbindung zum Schema. 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.
0

Sie können auch wie folgt eine Verbindung zu einer Datenbank mit einer anderen ROLLE herstellen.

\connect DBNAME ROLENAME;

oder

\c DBNAME ROLENAME;
0
Abhishek