PostgreSQL中的“use database_name”命令

“use database_name” command in PostgreSQL

我是PostgreSQL的初学者。

我想从Postgres的查询编辑器连接到另一个数据库,比如MySQL或MS SQL Server的USE命令。

我通过搜索互联网找到了\c databasename,但它只在psql上运行。当我从PostgreSQL查询编辑器中尝试它时,会得到一个语法错误。

我必须通过pgscripting更改数据库。有人知道怎么做吗?


当您连接到PostgreSQL时,它总是连接到特定的数据库。若要访问其他数据库,必须建立新的连接。

在psql中使用\c将关闭旧连接,并使用指定的数据库和/或凭据获取新连接。你会得到一个全新的后端流程和一切。


必须指定要在连接时使用的数据库;如果要对脚本使用psql,则可以使用"c name_database"

1
2
user_name=# CREATE DATABASE testdatabase;
user_name=# \c testdatabase

此时,您可能会看到以下输出

1
2
You are now connected TO DATABASE"testdatabase" AS USER"user_name".
testdatabase=#

注意提示是如何更改的。干杯,一直在努力寻找这个,太少的关于PostgreSQL的信息相比,MySQL和其他在我看来。


在pgadmin中,您也可以使用

SET search_path TO your_db_name;


我在从MySQL迁移时遇到的基本问题是,我认为在PostgreSQL中术语database也是一样的,但事实并非如此。因此,如果我们要从应用程序或pgAdmin切换数据库,结果将不会如预期的那样。在我的例子中,我们为每个客户都有单独的模式(这里考虑PostgreSQL术语)和单独的管理模式。所以在应用程序中,我必须在模式之间切换。

为此,我们可以使用SET search_path命令。这会将当前架构切换到当前会话的指定架构名称。

例子:

1
SET search_path = different_schema_name;

这会将当前的架构更改为会话的指定架构。要永久更改它,我们必须在postgresql.conf文件中进行更改。


第一次连接到psql时使用此命令

1
=# psql <databaseName> <usernamePostgresql>