“use database_name” command in PostgreSQL
我是PostgreSQL的初学者。
我想从Postgres的查询编辑器连接到另一个数据库,比如MySQL或MS SQL Server的USE命令。
我通过搜索互联网找到了\c databasename,但它只在psql上运行。当我从PostgreSQL查询编辑器中尝试它时,会得到一个语法错误。
我必须通过pgscripting更改数据库。有人知道怎么做吗?
- 如何在psql中切换数据库的可能副本?
- 另一种选择是直接连接到模式。示例:sudo -u postgres psql -d my_database_name。来源
当您连接到PostgreSQL时,它总是连接到特定的数据库。若要访问其他数据库,必须建立新的连接。
在psql中使用\c将关闭旧连接,并使用指定的数据库和/或凭据获取新连接。你会得到一个全新的后端流程和一切。
- 感谢Kgrittn提供宝贵的指导。您能告诉我如何使用pgscript查询建立新的数据库连接并关闭以前的连接吗?
- 我不熟悉pgscript。如果这是一种你编写函数的语言,答案是它不能完成。也许您应该考虑将表放在不同的模式中,而不是放在不同的数据库中?
- 谢谢。我们可以编写简单的查询来更改数据库吗????怎么用?
- 查询无法更改PostgreSQL中的数据库。
- 感谢Kgrittn的帮助。:)
- 如果我没弄错的话,MySQL中的数据库更类似于PostgreSQL中的模式——您可以在这些模式之间进行切换,但是PostgreSQL中的DBS是一个完全不同的游戏。
- 在安全性方面,这似乎是一个明智的限制/设计。
- 示例命令:c databaseu name
必须指定要在连接时使用的数据库;如果要对脚本使用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> |