.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "CREATE SCHEMA" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .SH NAME CREATE SCHEMA \- 定义一个新的模式 .SH SYNOPSIS .sp .nf CREATE SCHEMA \fIschemaname\fR [ AUTHORIZATION \fIusername\fR ] [ \fIschema_element\fR [ ... ] ] CREATE SCHEMA AUTHORIZATION \fIusername\fR [ \fIschema_element\fR [ ... ] ] .sp .fi .SH "DESCRIPTION 描述" .PP \fBCREATE SCHEMA\fR 将在当前数据库里输入一个新的模式。 该模式名将在当前数据库里现存的所有模式名中唯一。 .PP 模式实际上是一个名字空间: 它包含命名对象(表,数据类型,函数和操作符)这些名字可以和其它模式里存在的其它对象重名。 命名对象要么是通过用模式名作为前缀"修饰"这些它们的名字进行访问, 要么是通过设置一个搜索路径包含所需要的模式。 无修饰的对象都是在当前模式中创建的(在搜索路径最前面的;可以用函数 current_schema 来判断)。 .PP 另外,CREATE SCHEMA 可以包括在新模式中创建对象的子命令。 这些子命令和那些在创建完模式后发出的命令没有任何区别,只不过是如果使用了 AUTHORIZATION 子句, 那么所有创建的对象都将被该用户拥有。 .SH "PARAMETERS 参数" .TP \fB\fIschemaname\fB\fR 要创建的模式名字。如果省略,则使用用户名作为模式名。 .TP \fB\fIusername\fB\fR 将拥有该模式的用户名。如果省略,缺省为执行该命令的用户名。 只有超级用户才能创建不属于自己的模式。 .TP \fB\fIschema_element\fB\fR 一个 SQL 语句,定义一个要在模式里创建的对象。 目前,只有 CREATE TABLE,CREATE VIEW, 和 GRANT 是在 CREATE SCHEMA 里面可以接受的子句。 其它类型的对象可以在创建完模式之后的独立的命令里创建。 .SH "NOTES 注意" .PP 要创建模式,调用该命令的用户必需在当前数据库上有 CREATE 权限。(当然,超级用户绕开这个检查。) .SH "EXAMPLES 例子" .PP 创建一个模式: .sp .nf CREATE SCHEMA myschema; .sp .fi .PP 为用户 joe 创建模式 --- 模式也会叫 joe: .sp .nf CREATE SCHEMA AUTHORIZATION joe; .sp .fi .PP 创建一个模式并且在里面创建一个表: .sp .nf 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; .sp .fi 请注意上面的独立的子命令不是由分号结尾的。 .PP 下面的命令是实现同样结果的等效语句: .sp .nf 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; .sp .fi .SH "COMPATIBILITY 兼容性" .PP SQL 标准允许在 CREATE SCHEMA 里面有一个 DEFAULT CHARACTER SET 子句,以及比目前 PostgreSQL 可以接受的更多的子命令。 .PP SQL 标准声明在 CREATE SCHEMA 里的子命令可以以任意顺序出现。 目前 PostgreSQL 里的实现还不能处理所有子命令里需要提前引用的情况;有时候可能需要重排一下子命令的顺序以避免前向引用。 .PP 在 SQL 标准里,模式的所有者总是拥有其中的所有对象。 PostgreSQL 允许模式包含非模式所有者所有的对象。 只有在模式所有者 CREATE 了自己的模式的权限给了其它人才可能出现。 .SH "SEE ALSO 参见" ALTER SCHEMA [\fBalter_schema\fR(7)], DROP SCHEMA [\fBdrop_schema\fR(l)] .SH "译者" .B Postgresql 中文网站 .B 何伟平 .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR