postgresql中的Search_path和schema的概念
search_path类似于linux中的path环境变量
postgres=# show search_path;
search_path
-----------------
"$user", public
(1 row)
默认值是$user,public,意思就是当以某个用户登录到的时候,默认就是先查找和登录用户同名的schema,再查找public
例如当前我使用postgres用户连接到testdb下,查看当前有哪些表:
对search_path的操作,主要包括:1) show
2) set
schema相关概念模式即schema,类似于oracle中schema,mysql中的database概念,使用create schema来创建schema,一般我们的schema和owner都设置为相同。当连接到一个数据下的时候,创建表或者其它对象的时候一般都需要加上schema.name① 创建schema
suq=# \h create schema
command: create schema
description: define a new schema
syntax:
create schema schema_name [ authorization role_specification ] [ schema_element [ ... ] ]
create schema authorization role_specification [ schema_element [ ... ] ]
create schema if not exists schema_name [ authorization role_specification ]
create schema if not exists authorization role_specification
where role_specification can be:
[ group ] user_name
| current_user
| session_user
② 使用\n查看当前数据库下有哪些schema public是创建database的时候生成的默认schema,类似于oracle中的public用户
suq=# create schema brent authorization suq;
create schema
suq=# \dn
list of schemas
name | owner
--------+----------
brent | suq
public | postgres
③ 使用drop schema来删除schemasuq=# drop schema brent;
drop schema
④ 使用alter schema来修改schema,例如修改schema的名字suq=# alter schema brent rename to suq;
alter schema
suq=# \dn
list of schemas
name | owner
--------+----------
public | postgres
suq | postgres
⑥ 修改schema的所属主:suq=# alter schema suq owner to suq;alter schema
suq=# \dn
list of schemas
name | owner
--------+----------
public | postgres
suq | suq
下一篇: 战国时期的赵国实力如何 为何是最晚称王的
推荐阅读
-
详解Python中映射类型(字典)操作符的概念和使用
-
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
-
postgresql中的Search_path和schema的概念
-
MySQL5.7中 performance和sys schema中的监控参数解释(推荐)
-
Python中的模块和包概念介绍
-
浅析php中抽象类和接口的概念以及区别
-
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
-
详解Linux中PostgreSQL和PostGIS的安装和使用
-
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
-
用实例解释Python中的继承和多态的概念