我是PostgreSQL的初学者。
我想从Postgres的查询编辑器连接到另一个数据库 - 就像MySQL或MS SQL Server的USE
命令一样。
我通过搜索互联网找到\c databasename
,但它仅在psql上运行。当我从PostgreSQL查询编辑器中尝试它时,我收到语法错误。
我必须通过pgscripting更改数据库。有谁知道怎么做?
答案 0 :(得分:320)
当您获得与PostgreSQL
的连接时,它始终是特定数据库。要访问其他数据库,您必须获得新连接。
在psql中使用\c
将使用指定的数据库和/或凭据关闭旧连接并获取新连接。您将获得一个全新的后端流程和所有内容。
答案 1 :(得分:195)
您必须指定要在连接时使用的数据库;如果要将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=#
注意提示如何更改。干杯,刚刚忙着寻找这个,关于postgreSQL的信息与MySQL和其他我认为的其他信息相比太少了。
答案 2 :(得分:16)
在pgAdmin中,您也可以使用
将search_path设为TO_db_name;
答案 3 :(得分:7)
从我面临的MySQL迁移时的基本问题是,我认为术语database
在PostgreSQL中也是一样的,但事实并非如此。因此,如果我们要从我们的应用程序或pgAdmin
切换数据库,结果将不会如预期的那样。
在我的例子中,我们为每个客户和单独的管理模式提供了单独的模式(在这里考虑PostgreSQL术语。)。所以在应用程序中,我必须在模式之间切换。
为此,我们可以使用SET search_path
命令。这会将当前架构切换为当前会话的指定架构名称。
示例:强>
SET search_path = different_schema_name;
这会将current_schema更改为会话的指定架构。要永久更改它,我们必须在postgresql.conf
文件中进行更改。
答案 4 :(得分:0)
在首次连接到psql
=# psql <databaseName> <usernamePostgresql>
答案 5 :(得分:0)
PgAdmin 4,GUI 工具:在数据库之间切换
为了确保您查询的是正确的数据库,请发出以下查询:
SELECT session_user, current_database();