文档下载建议反馈入口

  • 创建模式
  • 查看模式
  • 删除模式

模式管理

创建模式

前提条件

  • 非三权分立模式下,用户拥有模式所属数据库的 CREATE 权限。
  • 三权分立模式下,用户是 sysadmin 角色的成员或者是拥有所属数据库 CREATE 权限的普通用户。默认情况下,sysroot 用户属于 sysadmin 角色。

语法格式

CREATE SCHEMA [IF NOT EXISTS] <schema_name>;

参数说明

参数说明
schema_name模式名称,模式名称不能与当前数据库的现有模式名称重复。默认情况下,数据库包括 information_schemapg_catalogpublickwdb_internal 模式。

语法示例

以下示例为 db1 数据库创建 myschema1 模式。

-- 1. 创建 db1 数据库。

CREATE DATABASE db1;
CREATE DATABASE

-- 2. 使用 db1 数据库。

USE db1;
SET

-- 3. 创建 myschema1 模式。

CREATE SCHEMA myschema1;
CREATE SCHEMA

查看模式

前提条件

用户拥有当前数据库或目标数据库的访问权限。

语法格式

SHOW SCHEMAS [FROM <db_name>];

参数说明

参数说明
db_name待查看模式所在的数据库的名称。如未指定,则默认使用当前数据库。

语法示例

以下示例查看当前数据库中的模式。

SHOW SCHEMAS;

执行成功后,命令行输出以下信息:

     schema_name
----------------------
  information_schema
  kwdb_internal
  pg_catalog
  public
(4 rows)

删除模式

前提条件

  • 非三权分立模式下,用户拥有模式的 DROP 权限。
  • 三权分立模式下,用户是 sysadmin 角色的成员或者是拥有模式 DROP 权限的普通用户。默认情况下,sysroot 用户属于 sysadmin 角色。

语法格式

DROP SCHEMA [IF EXISTS] <schema_name> [CASCADE | RESTRICT];

参数说明

参数说明
IF EXISTS可选关键字。当使用 IF EXISTS 关键字时,如果目标模式存在,系统删除目标模式。如果目标模式不存在,系统删除目标模式失败,但不会报错。当未使用 IF EXISTS 关键字时,如果目标模式存在,系统删除目标模式。如果目标模式不存在,系统报错,提示目标模式不存在。
schema_name待删除模式的名称。
CASCADE可选关键字。删除目标模式及其关联对象。CASCADE 不会列出待删除的关联对象,应谨慎使用。
RESTRICT默认设置,可选关键字。如果其他对象依赖目标模式,则无法删除该模式。

语法示例

以下示例以非级联方式删除 myschema1myschema2 模式及其关联对象,系统报错。

DROP SCHEMA myschema1, myschema2;
ERROR: schema "myschema1" is not empty and CASCADE was not specified
SQLSTATE: 2BP01

以下示例级联删除 myschema1myschema2 模式。

DROP SCHEMA myschema1, myschema2 CASCADE;