在psql中切换数据库的方法

在psql中切换数据库的方法

技术背景

PostgreSQL 是一个强大的开源关系型数据库管理系统,psql 是它的一个命令行客户端工具。在使用 psql 时,我们常常需要在不同数据库之间进行切换,以执行对不同数据库的操作。

实现步骤

1. 使用 \c\connect 命令

在 psql 提示符下,可以使用 \connect 元命令或其缩写 \c 来切换数据库,格式为:

1
\connect DBNAME

1
\c DBNAME

示例:

1
2
postgres=# \c testdb
You are now connected to database "testdb" as user "postgres".

2. 在连接 psql 时指定数据库

可以在使用 psql 命令连接时直接指定要连接的数据库,例如:

1
sudo -u postgres psql -d my_database_name

3. 以不同角色连接到数据库

还可以使用不同的角色连接到数据库,格式如下:

1
\connect DBNAME ROLENAME;

1
\c DBNAME ROLENAME;

4. 在启动时指定数据库(针对特定环境)

如果使用 PostgreSQL.app 且要在启动时指定数据库,可以使用以下命令:

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

如果 PostgreSQL 监听的不是默认端口 5432,需要在命令中指定端口:

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

核心代码

切换数据库

1
2
-- 切换到指定数据库
\c database_name

查看当前连接的数据库

1
SELECT current_database();

列出所有数据库

1
2
3
-- 用 \l 或 \list 列出所有数据库
\l
\list

最佳实践

设置别名

可以在 .bashrc.bash_profile 中创建一个别名函数,方便快速连接不同的数据库:

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

这样,在命令行中运行 psql 会连接到默认数据库,运行 psql anotherdb 则会连接到指定的数据库。

指定默认模式

在 PostgreSQL 中,除了数据库还有模式,在连接后可以使用 SET schema 语句指定默认模式:

1
SET schema 'schemaName';

之后执行查询时就可以不重复指定模式名:

1
SELECT * from tableName;

常见问题

\c\connect 命令大小写敏感

\c\connect 命令是大小写敏感的,输入数据库名和角色名时需要注意大小写。例如,如果数据库名为 TestDB,写成 \c testdb 可能会导致连接失败。

无法在 pgAdmin 中使用 \c\connect 命令

\c\connect 是 psql 的元命令,不能在 pgAdmin 中使用。在 pgAdmin 中,需要通过图形界面进行数据库的切换操作。


在psql中切换数据库的方法
https://119291.xyz/posts/methods-to-switch-databases-in-psql/
作者
ww
发布于
2025年5月30日
许可协议