如何在psql中切换数据库?

2010-10-17 postgresql psql

在MySQL中,我使用use database_name;

什么是psql等效项?

Answers

在PostgreSQL中,可以使用客户端工具psql的\connect元命令:

\connect DBNAME

或简而言之:

\c DBNAME

您可以使用\c <database>\connect <database>

在PSQL提示符下,您可以执行以下操作:

\connect (or \c) dbname

与psql连接时,可以选择数据库。从脚本中使用它很方便:

sudo -u postgres psql -c "CREATE SCHEMA test AUTHORIZATION test;" test

如其他答案中所述,您需要更改连接以使用其他数据库。

Postgres使用模式。一个数据库中可以有多个方案。因此,如果您在同一个数据库中工作,并且想要更改架构,则可以执行以下操作:

SET SCHEMA 'schema_name';

使用psql的元命令\c or \connect [ dbname [ username ] [ host ] [ port ] ] | conninfo (请参阅文档 )。

示例: \c MyDatabase

请注意, \c\connect元命令区分大小写

\l用于数据库 \c DatabaseName切换到db \df用于存储在特定数据库中的过程

使用下面的语句切换到驻留在内部的不同数据库 您的PostgreSQL RDMS

\c databaseName

您可以使用连接

\c dbname

如果要在启动时切换到特定数据库,请尝试

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

默认情况下,Postgres在端口5432上运行。如果它在另一个端口上运行,请确保在命令行中传递该端口。

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

通过简单的别名,我们可以方便使用。

在您的.bashrc.bash_profile创建一个别名

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

在命令行中运行psql ,它将切换到默认数据库; psql anotherdb ,它将在启动时切换到参数为name的数据库。

尽管未在问题中明确说明,但目的是连接到特定的架构/数据库。

另一个选择是直接连接到架构。例:

sudo -u postgres psql -d my_database_name

来自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.

您可以使用连接

\ c dbname

如果您想查看POSTGRESQL或SQL的所有可能命令,请执行以下步骤:

  1. Rails dbconsole (您将重新定位到当前的ENV数据库)

  2. \? (对于POSTGRESQL命令)

要么

  1. \H (对于SQL命令)

  2. 按Q退出

您还可以按以下方式使用不同的ROLE连接到数据库。

\connect DBNAME ROLENAME;

要么

\c DBNAME ROLENAME;

Related