web-dev-qa-db-fra.com

Comment changer de base de données dans psql?

Dans MySQL, j'ai utilisé use database_name;

Quel est l'équivalent psql?

902
Blankman

Dans PostgreSQL, vous pouvez utiliser la \connect meta-command de l'outil client psql:

\connect DBNAME

ou en bref:

\c DBNAME
1412
Will Hartung

Vous pouvez vous connecter à une base de données avec \c <database> ou \connect <database>.

175
meagar

À l'invite PSQL, vous pouvez effectuer les tâches suivantes: 

\connect (or \c) dbname
92
Michael Goldshteyn

Vous pouvez vous connecter en utilisant

\c dbname
24
Jeswin K Ninan

Vous pouvez sélectionner la base de données lors de la connexion avec psql. C'est pratique lorsque vous l'utilisez depuis un script:

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

Utilisation de la méta-commande \c or \connect [ dbname [ username ] [ Host ] [ port ] ] | conninfo de psql (voir documentation ).

Exemple: \c MyDatabase

Notez que les méta-commandes \c et \connect sont sensibles à la casse.

9
Franck Dernoncourt

\l pour les bases de données \c DatabaseName pour passer à db \df pour les procédures stockées dans une base de données particulière

8
Ambrish Rajput

Utilisez l'instruction ci-dessous pour passer à différentes bases de données résidant dans Votre RDMS postgreSQL

\c databaseName
6
Bilal Mahmood

Si vous souhaitez basculer vers une base de données spécifique au démarrage, essayez

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

Par défaut, Postgres est exécuté sur le port 5432. S'il s'exécute sur un autre, assurez-vous de transmettre le port dans la ligne de commande.

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

Par un simple alias, nous pouvons le rendre pratique.

Créez un alias dans votre .bashrc ou .bash_profile

function psql()
{
    db=vigneshdb
    if [ "$1" != ""]; then
            db=$1
    fi
    /Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p5432 $1
}

Exécutez psql en ligne de commande, il passera à la base de données par défaut; psql anotherdb, il passera à la base de données avec le nom en argument, au démarrage.

1
Vignesh Raja

SQL vous permet de définir la base de données dans la requête. Alors pourquoi ne pas simplement utiliser?

SELECT 
 *
FROM 
 database.table 

Ensuite, vous ne devez jamais "sélectionner" la base de données "manuellement"

Ou un exemple JOIN de base de données croisée

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

Vous pouvez vous connecter en utilisant

\ c nombase

Si vous souhaitez voir toutes les commandes possibles pour POSTGRESQL ou SQL, suivez ces étapes:

  1. Rails dbconsole (vous serez redirigé vers votre base de données ENV actuelle)

  2. \? (Pour les commandes POSTGRESQL)

ou

  1. \ h (pour les commandes SQL)

  2. Appuyez sur Q pour quitter

0
Lakhani Aliraza

Bien que cela ne soit pas explicitement indiqué dans la question, l'objectif est de se connecter à un schéma/une base de données spécifique.

Une autre option consiste à vous connecter directement au schéma. Exemple:

Sudo -u postgres psql -d my_database_name

Source de 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
AlikElzin-kilaka

Vous pouvez également vous connecter à une base de données avec un rôle différent comme suit.

\connect DBNAME ROLENAME;

ou

\c DBNAME ROLENAME;
0
Abhishek