Answers:
在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
\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'.
在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 |
等等...
这很旧,但是我将导出文件放在别名中以连接到数据库:
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
并在您的别名中使用分号。PGOPTIONS
离开psql之后,这种方法就不会存在。
SET search_path
每个查询添加a更为实用。谢谢!