当前位置:  开发笔记 > 编程语言 > 正文

使用psql时如何在postgres中选择模式?

如何解决《使用psql时如何在postgres中选择模式?》经验,为你挑选了5个好方法。

我有一个包含多个模式的postgres数据库.当我从shell连接到数据库时psql,我运行\dt它使用默认的公共连接模式.是否有我可以指定的标志或如何更改架构?



1> 小智..:

在PostgreSQL中,系统通过遵循搜索路径来确定表示哪个表,搜索路径是要查看的模式列表.

搜索路径中的第一个匹配表被视为所需的匹配表,否则,如果没有匹配则引发错误,即使数据库中的其他模式中存在匹配的表名.

要显示当前搜索路径,可以使用以下命令:

SHOW search_path;

要将新架构放在路径中,您可以使用:

SET search_path TO myschema;

或者如果你想要多个模式:

SET search_path TO myschema, public;

参考:https://www.postgresql.org/docs/current/static/ddl-schemas.html



2> 小智..:

你想改变数据库吗?

\l - to display databases
\c - connect to new database

更新.

我再读一遍你的问题.显示模式

\dn - list of schemas

要更改架构,您可以尝试

SET search_path TO



3> klin..:

在psql命令中使用带有句点的模式名称来获取有关此模式的信息.

建立:

test=# create schema test_schema;
CREATE SCHEMA
test=# create table test_schema.test_table (id int);
CREATE TABLE
test=# create table test_schema.test_table_2 (id int);
CREATE TABLE

显示关系列表test_schema:

test=# \dt test_schema.
               List of relations
   Schema    |     Name     | Type  |  Owner   
-------------+--------------+-------+----------
 test_schema | test_table   | table | postgres
 test_schema | test_table_2 | table | postgres
(2 rows)

显示test_schema.test_table定义:

test=# \d test_schema.test_table
Table "test_schema.test_table"
 Column |  Type   | Modifiers 
--------+---------+-----------
 id     | integer | 

显示所有表格test_schema:

test=# \d test_schema.
Table "test_schema.test_table"
 Column |  Type   | Modifiers 
--------+---------+-----------
 id     | integer | 

Table "test_schema.test_table_2"
 Column |  Type   | Modifiers 
--------+---------+-----------
 id     | integer | 

等等...


我错过了\ dt test_schema之后的时期.这导致"没有关系发现消息"感谢您的示例,使它更容易:)

4> Mohamed Same..:
\l - Display database
\c - Connect to database
\dn - List schemas
\dt - List tables inside public schemas
\dt schema1. - List tables inside particular schemas. For eg: 'schema1'.



5> techbrownbag..:

这是旧的,但我将导出放在我的别名中以连接到db:

alias schema_one.con="PGOPTIONS='--search_path=schema_one' psql -h host -U user -d database etc"

对于另一个架构:

alias schema_two.con="PGOPTIONS='--search_path=schema_two' psql -h host -U user -d database etc"


好主意。我会在您的别名中省略`export`和分号。这样,退出psql后,`PGOPTIONS`不会停留在周围。
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有