How to switch databases in psql?
PostgresqlPsqlPostgresql Problem Overview
In MySQL, I used use database_name;
What's the psql
equivalent?
Postgresql Solutions
Solution 1 - Postgresql
In PostgreSQL, you can use the \connect
meta-command of the client tool psql:
\connect DBNAME
or in short:
\c DBNAME
Solution 2 - Postgresql
You can connect to a database with \c <database>
or \connect <database>
.
Solution 3 - Postgresql
At the PSQL prompt, you can do:
\connect (or \c) dbname
Solution 4 - Postgresql
You can select the database when connecting with psql. This is handy when using it from a script:
sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test
Solution 5 - Postgresql
use \c databaseName
or \connect databaseName
(Working on psql 13.3)
Solution 6 - Postgresql
\l
for databases
\c
DatabaseName to switch to db
\df
for procedures stored in particular database
Solution 7 - Postgresql
Using psql's meta-command \c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo
(see documentation).
Example: \c MyDatabase
Note that the \c
and \connect
meta-commands are case-sensitive.
Solution 8 - Postgresql
Though not explicitly stated in the question, the purpose is to connect to a specific schema/database.
Another option is to directly connect to the schema. Example:
sudo -u postgres psql -d my_database_name
Source from 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.
Solution 9 - Postgresql
Use below statement to switch to different databases residing inside your postgreSQL RDMS
\c databaseName
Solution 10 - Postgresql
You can also connect to a database with a different ROLE as follows.
\connect DBNAME ROLENAME;
or
\c DBNAME ROLENAME;
Solution 11 - Postgresql
If you want to switch to a specific database on startup, try
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql vigneshdb;
By default, Postgres runs on the port 5432. If it runs on another, make sure to pass the port in the command line.
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p2345 vigneshdb;
By a simple alias, we can make it handy.
Create an alias in your .bashrc
or .bash_profile
function psql()
{
db=vigneshdb
if [ "$1" != ""]; then
db=$1
fi
/Applications/Postgres.app/Contents/Versions/9.5/bin/psql -p5432 $1
}
Run psql
in command line, it will switch to default database; psql anotherdb
, it will switch to the db with the name in argument, on startup.
Solution 12 - Postgresql
Listing and Switching Databases in PostgreSQL When you need to change between databases, you’ll use the \connect command, or \c followed by the database name as shown below:
postgres=# \connect database_name
postgres=# \c database_name
Check the database you are currently connected to.
SELECT current_database();
postgres=# \l
postgres=# \list
Solution 13 - Postgresql
You can connect using
\c dbname
If you would like to see all possible commands for POSTGRESQL or SQL follow this steps :
-
rails dbconsole (You will be redirected to your current ENV database)
-
? (For POSTGRESQL commands)
or
-
\h (For SQL commands)
-
Press Q to Exit
Solution 14 - Postgresql
Connect to database:
Method 1 : enter to db : sudo -u postgres psql
Connect to db : \c dbname
Method 2 : directly connect to db : sudo -u postgres psql -d my_database_name
Solution 15 - Postgresql
You can just enter use [dbName]
to switch between databases without reentering your password.