Man page - create_schema(7)

Manual

CREATE SCHEMA

NAME
SYNOPSIS
DESCRIPTION 描 述
PARAMETERS 参 数
NOTES 注 意
EXAMPLES 例 子
COMPATIBILITY 兼 容 性
SEE ALSO 参 见
译 者


NAME

CREATE SCHEMA - 定 义 一 个 新 的 模 式

SYNOPSIS

CREATE SCHEMA schemaname [ AUTHORIZATION username ] [ schema_element [ ... ] ]
CREATE SCHEMA AUTHORIZATION username [ schema_element [ ... ] ]

DESCRIPTION 描 述

CREATE SCHEMA 将 在 当 前 数 据 库 里 输 入 一 个 新 的 模 式 。 该 模 式 名 将 在 当 前 数 据 库 里 现 存 的 所 有 模 式 名 中 唯 一 。

模 式 实 际 上 是 一 个 名 字 空 间 : 它 包 含 命 名 对 象 ( 表 , 数 据 类 型 , 函 数 和 操 作 符 ) 这 些 名 字 可 以 和 其 它 模 式 里 存 在 的 其 它 对 象 重 名 。 命 名 对 象 要 么 是 通 过 用 模 式 名 作 为 前 缀 "修 饰 "这 些 它 们 的 名 字 进 行 访 问 , 要 么 是 通 过 设 置 一 个 搜 索 路 径 包 含 所 需 要 的 模 式 。 无 修 饰 的 对 象 都 是 在 当 前 模 式 中 创 建 的 ( 在 搜 索 路 径 最 前 面 的 ; 可 以 用 函 数 current_schema 来 判 断 ) 。

另 外 , CREATE SCHEMA 可 以 包 括 在 新 模 式 中 创 建 对 象 的 子 命 令 。 这 些 子 命 令 和 那 些 在 创 建 完 模 式 后 发 出 的 命 令 没 有 任 何 区 别 , 只 不 过 是 如 果 使 用 了 AUTHORIZATION 子 句 , 那 么 所 有 创 建 的 对 象 都 将 被 该 用 户 拥 有 。

PARAMETERS 参 数

schemaname

要 创 建 的 模 式 名 字 。 如 果 省 略 , 则 使 用 用 户 名 作 为 模 式 名 。

username

将 拥 有 该 模 式 的 用 户 名 。 如 果 省 略 , 缺 省 为 执 行 该 命 令 的 用 户 名 。 只 有 超 级 用 户 才 能 创 建 不 属 于 自 己 的 模 式 。

schema_element

一 个 SQL 语 句 , 定 义 一 个 要 在 模 式 里 创 建 的 对 象 。 目 前 , 只 有 CREATE TABLE, CREATE VIEW, 和 GRANT 是 在 CREATE SCHEMA 里 面 可 以 接 受 的 子 句 。 其 它 类 型 的 对 象 可 以 在 创 建 完 模 式 之 后 的 独 立 的 命 令 里 创 建 。

NOTES 注 意

要 创 建 模 式 , 调 用 该 命 令 的 用 户 必 需 在 当 前 数 据 库 上 有 CREATE 权 限 。 ( 当 然 , 超 级 用 户 绕 开 这 个 检 查 。 )

EXAMPLES 例 子

创 建 一 个 模 式 :

CREATE SCHEMA myschema;

为 用 户 joe 创 建 模 式 --- 模 式 也 会 叫 joe:

CREATE SCHEMA AUTHORIZATION joe;

创 建 一 个 模 式 并 且 在 里 面 创 建 一 个 表 :

CREATE SCHEMA hollywood
CREATE TABLE films (title text, release date, awards text[])
CREATE VIEW winners AS
SELECT title, release FROM films WHERE awards IS NOT NULL;

请 注 意 上 面 的 独 立 的 子 命 令 不 是 由 分 号 结 尾 的 。

下 面 的 命 令 是 实 现 同 样 结 果 的 等 效 语 句 :

CREATE SCHEMA hollywood;
CREATE TABLE hollywood.films (title text, release date, awards text[]);
CREATE VIEW hollywood.winners AS
SELECT title, release FROM hollywood.films WHERE awards IS NOT NULL;

COMPATIBILITY 兼 容 性

SQL 标 准 允 许 在 CREATE SCHEMA 里 面 有 一 个 DEFAULT CHARACTER SET 子 句 , 以 及 比 目 前 PostgreSQL 可 以 接 受 的 更 多 的 子 命 令 。

SQL 标 准 声 明 在 CREATE SCHEMA 里 的 子 命 令 可 以 以 任 意 顺 序 出 现 。 目 前 PostgreSQL 里 的 实 现 还 不 能 处 理 所 有 子 命 令 里 需 要 提 前 引 用 的 情 况 ; 有 时 候 可 能 需 要 重 排 一 下 子 命 令 的 顺 序 以 避 免 前 向 引 用 。

在 SQL 标 准 里 , 模 式 的 所 有 者 总 是 拥 有 其 中 的 所 有 对 象 。 PostgreSQL 允 许 模 式 包 含 非 模 式 所 有 者 所 有 的 对 象 。 只 有 在 模 式 所 有 者 CREATE 了 自 己 的 模 式 的 权 限 给 了 其 它 人 才 可 能 出 现 。

SEE ALSO 参 见

ALTER SCHEMA [ alter_schema (7)], DROP SCHEMA [ drop_schema (l)]

译 者

Postgresql 中 文 网 站 何 伟 平 <laser@pgsqldb.org>

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。
中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh