我是 PostgreSQL 的初学者。
我想从 Postgres 的查询编辑器连接到另一个数据库 - 例如 MySQL 或 MS SQL Server 的 USE
命令。
我通过搜索 Internet 找到了 \c databasename
,但它只在 psql 上运行。当我从 PostgreSQL 查询编辑器尝试它时,我得到一个语法错误。
我必须通过 pgscripting 更改数据库。有谁知道该怎么做?
sudo -u postgres psql -d my_database_name
。 Source
当您获得与 PostgreSQL
的连接时,它始终是特定数据库。要访问不同的数据库,您必须获得一个新连接。
在 psql 中使用 \c
会关闭旧连接并使用指定的数据库和/或凭据获取新连接。您将获得一个全新的后端流程和一切。
您必须指定要在连接时使用的数据库;如果你想为你的脚本使用 psql,你可以使用 "\c name_database"
user_name=# CREATE DATABASE testdatabase;
user_name=# \c testdatabase
此时您可能会看到以下输出
You are now connected to database "testdatabase" as user "user_name".
testdatabase=#
注意提示的变化。干杯,我也一直在忙着寻找这个,与 MySQL 相比,关于 postgreSQL 的信息太少了,在我看来。
在 pgAdmin 你也可以使用
将 search_path 设置为 your_db_name;
我从 MySQL 迁移时遇到的基本问题是,我认为术语 database
在 PostgreSQL 中也相同,但事实并非如此。因此,如果我们要从我们的应用程序或 pgAdmin
切换数据库,结果将不会像预期的那样。与我的情况一样,我们为每个客户和单独的管理模式都有单独的模式(这里考虑 PostgreSQL 术语。)。所以在应用程序中,我必须在模式之间切换。
为此,我们可以使用 SET search_path
命令。这确实会将当前模式切换为当前会话的指定模式名称。
例子:
SET search_path = different_schema_name;
这会将 current_schema 更改为会话的指定模式。要永久更改它,我们必须在 postgresql.conf
文件中进行更改。
首次连接到 psql
时使用此逗号
=# psql <databaseName> <usernamePostgresql>
PgAdmin 4,GUI 工具:在数据库之间切换
在左侧的 PgAdmin 浏览器中,右键单击您愿意切换到的数据库。从下拉菜单中选择一个 QueryTool(或您需要的任何其他选项,我现在将坚持使用 QueryTool)。您将在 PgAdmin 窗口中看到 QueryTool,在顶部您将看到活动数据库和角色名称。现在您可以针对所选数据库编写查询。您可以为多个数据库打开多个 QueryTools,并像使用图形文本编辑器一样使用它们。
为了确保您正在查询正确的数据库,请发出以下查询:
SELECT session_user, current_database();
set search_path = 'schema name here'
在连接到 postgres 时,您必须选择默认数据库进行连接。如果你什么都没有,你可以使用'postgres'作为默认值。
您可以使用 dbeaver 连接到 postgres。用户界面很好
select current_database()