===========创建模式
postgres=# create schema my_schema;
CREATE SCHEMA
postgres=# \dn+
List of schemas
Name | Owner | Access privileges | Description
-----------+----------+-------------------+-------------
my_schema | postgres | |
(1 row)
这时候我们再创建表t1,就可以指定schema。
create table my_schema.t1 ( a int );
此时我们使用\d命令列出所有表。会提示Did not find any relations.原因是search_path中没有设置my_schema。
postgres=# \d
Did not find any relations.
======================将my_schema添加到search_path中,即可显示出来。
postgres=# show search_path;
search_path
-----------------
"$user", public
postgres=# set search_path="$user", public,'my_schema';
SET
postgres=# show search_path;
search_path
----------------------------
"$user", public, my_schema
postgres=# \d
postgres=# \d
关联列表
架构模式 | 名称 | 类型 | 拥有者
----------+-------------------------+--------------+----------
my_schema | t | 数据表 | postgres
5、什么是search_path?
search_path类似于linux的path环境变量。它是一个模式名列表,当我们不使用数据库对象的限定名时,pg会检查这些模式名。例如,当我们执行select * from mytable; 没有指定模式。此时pg会在search_path中列出的模式中查找这个表。它选择它找到的第一个匹配项。默认是$user,public。
怎么修改search_path?
set search_path = "$user", public, my_schema
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




