我是 PostgreSQL 的初学者。
我想从 Postgres 的查询编辑器连接到另一个数据库——比如USE
MySQL 或 MS SQL Server 的命令。
我\c databasename
通过搜索互联网找到了,但它只在psql上运行。当我从 PostgreSQL 查询编辑器尝试它时,我得到一个语法错误。
我必须通过 pgscripting 更改数据库。有谁知道该怎么做?
我是 PostgreSQL 的初学者。
我想从 Postgres 的查询编辑器连接到另一个数据库——比如USE
MySQL 或 MS SQL Server 的命令。
我\c databasename
通过搜索互联网找到了,但它只在psql上运行。当我从 PostgreSQL 查询编辑器尝试它时,我得到一个语法错误。
我必须通过 pgscripting 更改数据库。有谁知道该怎么做?
当您获得与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 工具:在数据库之间切换
为了确保您正在查询正确的数据库,请发出以下查询:
SELECT session_user, current_database();
set search_path = 'schema name here'
在连接到 postgres 时,您必须选择默认数据库进行连接。如果你什么都没有,你可以使用'postgres'作为默认值。
您可以使用 dbeaver 连接到 postgres。用户界面很好