In MySQL habe ich use database_name;
verwendet
Was ist das psql-Äquivalent?
In PostgreSQL können Sie den \connect
meta-Befehl des Client-Tools psql verwenden:
\connect DBNAME
oder kurz:
\c DBNAME
Sie können sich mit \c <database>
oder \connect <database>
mit einer Datenbank verbinden.
Bei der PSQL-Eingabeaufforderung können Sie Folgendes tun:
\connect (or \c) dbname
Sie können sich mit verbinden
\c dbname
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
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 \connect
Groß- und Kleinschreibung beachten.
\l
für Datenbanken \c
DatabaseName, um zu db \df
für in einer bestimmten Datenbank gespeicherte Prozeduren zu wechseln
Verwenden Sie die folgende Anweisung, um zu anderen Datenbanken zu wechseln, die sich in
\c databaseName
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.
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>'
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:
Rails dbconsole (Sie werden in Ihre aktuelle ENV-Datenbank umgeleitet)
\? (Für POSTGRESQL-Befehle)
oder
\ h (für SQL-Befehle)
Drücken Sie Q zum Verlassen
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.
Sie können auch wie folgt eine Verbindung zu einer Datenbank mit einer anderen ROLLE herstellen.
\connect DBNAME ROLENAME;
oder
\c DBNAME ROLENAME;