【postgresql】schema(namespace) ddl代码解析

本文详细介绍了PostgreSQL中的Schema概念,包括默认Schema、创建与删除Schema的语法、Schema的查找路径、权限管理和系统Catalog Schema。通过示例代码展示了CreateSchemaCommand、RenameSchema和RemoveSchema的实现过程,帮助读者深入掌握Schema在数据库组织和管理中的应用。
摘要由CSDN通过智能技术生成

pg中的schema用法

schema有点类似于操作系统中的文件夹,schema中保存tables、data types、function等。

schema is a named containers for tables.

schema的用途有

  1. 提供给数据库用户分开的环境
  2. 组织数据库对象为相关联的分组。

一个database包含多个schema,schema中可以包含data types、functions和operators。不同的schema内可以有同名的对象。

默认schema

pg里的默认schema是public,如果不指定schema就是在public下。如执行create table topic最后就会保存在public.topic下。
每一个新创建的database都有一个public schema。

语法

创建schema

CREATE SCHEMA schema_name;

schema name限制:

  • 长度小于32
  • 以小写字母或者_开头
  • 不能以pg_开头,以pg_开头的是系统表相关
    创建只能由某个用户username访问的schema,其中schemaname可以省略(默认与username一致)。
CREATE SCHEMA schemaname AUTHORIZATION username;

删除schema

删除一个为空的schema(其中的所有对象已经被删除):

DROP SCHEMA myschema;

删除一个模式以及其中包含的所有对象:

DROP SCHEMA myschema CASCADE;

schema 查找路径

为表指定特定的schema是很繁琐的,通常不指定schema,仅仅包含表的name。系统通过search path来决定表的含义,search path在schema列表中进行查找。返回第一个匹配的表名。如果没有匹配的则输出错

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值