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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐