欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

postgresql中的Search_path和schema的概念

程序员文章站 2023-11-19 17:01:28
search_path类似于linux中的path环境变量 postgres=# show search_path; search_path ----------------- "$use...

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