482

我是 PostgreSQL 的初学者。

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

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

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

4

7 回答 7

494

当您获得与PostgreSQL它的连接时,始终是与特定数据库的连接。要访问不同的数据库,您必须获得一个新连接。

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

于 2012-04-26T17:25:11.623 回答
255

您必须指定要在连接时使用的数据库;如果你想为你的脚本使用 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 的信息太少了,在我看来。

于 2013-09-09T13:48:44.937 回答
38

在 pgAdmin 你也可以使用

将 search_path 设置为 your_db_name;

于 2017-03-07T15:36:30.253 回答
13

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

为此,我们可以使用SET search_path命令。这确实会将当前模式切换为当前会话的指定模式名称。

例子:

SET search_path = different_schema_name;

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

于 2017-11-23T10:21:27.583 回答
6

首次连接时使用此命令psql

=# psql <databaseName> <usernamePostgresql>
于 2018-09-04T10:08:08.550 回答
3

PgAdmin 4,GUI 工具:在数据库之间切换

  1. 在左侧的 PgAdmin 浏览器中,右键单击您愿意切换到的数据库。
  2. 从下拉菜单中选择一个 QueryTool(或您需要的任何其他选项,我现在将坚持使用 QueryTool)。
  3. 您将在 PgAdmin 窗口中看到 QueryTool,在顶部您将看到活动数据库和角色名称。
  4. 现在您可以针对所选数据库编写查询。
  5. 您可以为多个数据库打开多个 QueryTools,并像使用图形文本编辑器一样使用它们。

为了确保您正在查询正确的数据库,请发出以下查询:

SELECT session_user, current_database();
于 2021-05-11T15:11:05.187 回答
2
set search_path = 'schema name here'

在连接到 postgres 时,您必须选择默认数据库进行连接。如果你什么都没有,你可以使用'postgres'作为默认值。

您可以使用 dbeaver 连接到 postgres。用户界面很好

于 2021-09-15T12:03:16.177 回答