模式: DB内组织对象的一种逻辑结构。位于每一个数据库(DB)下面。
PUBLIC 模式: 每一个DB都自带的schema。创建的任何对象,在没有指定schema时,默认创建到PUBLIC下。
创建模式:
1、使用CREATE SCHEMA命令
CREATE SCHEMA sc01;
2、将Owner设置为其他的Role:
create schema sc02 AUTHORIZATION dylan;
可能会报错:permission denied for database testdw;
原因:dylan用户没有对testdw的操作权限
解决方案:为用户赋权:
grant all on database tetstdw to dylan;
3、访问模式的对象:schema.table
模式搜索路径:
若不想通过指定模式名称的方式来搜索需要的对象,可以通过设置search_path的方式来实现,第一个模式为缺省。
设置搜索路径:
1、通过ALTER DATABASE 修改DB的模式搜索路径,需要退出[\q]重连才能生效。
alter database testdw set search_path to sc01,public,pg_catalog;
2、通过ALTER ROLE 修改ROLE(User)的模式搜索路径:
alter role dylan set search_path to sc01,public,pg_catalog;
查看当前的搜索路径:
show search_path;
select current_schema();
删除模式:
使用DROP SCHEMA 命令(空模式):
DRROP SCHEMA sc01;
删除模式及相关的所有对象:
DRROP SCHEMA sc01 cascade;
查看用户的search_path:
select * from pg_roles;
系统模式简介:
pg_catalog模式存储系统日志表、内置类型、函数和运算符。
Information_schema模式由一个标准化视图构成。其中包含DB中对象的信息。
pg_toast模式是存储大对象(系统内部使用)。
pg_bitmapindex模式存储bitmap index对象(系统内部使用)。
pg_aoseg存储append-only表(系统内部使用)。
gp_toolkit是管理用的模式,可以查看和检查系统日志文件和其他系统信息。