mirror of https://github.com/postgres/postgres
parent
be004a0c09
commit
d9375ad564
@ -0,0 +1,240 @@ |
|||||||
|
<!-- |
||||||
|
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_schema.sgml,v 1.1 2002/04/25 21:47:07 tgl Exp $ |
||||||
|
PostgreSQL documentation |
||||||
|
--> |
||||||
|
|
||||||
|
<refentry id="SQL-CREATESCHEMA"> |
||||||
|
<refmeta> |
||||||
|
<refentrytitle id="sql-createschema-title">CREATE SCHEMA</refentrytitle> |
||||||
|
<refmiscinfo>SQL - Language Statements</refmiscinfo> |
||||||
|
</refmeta> |
||||||
|
<refnamediv> |
||||||
|
<refname> |
||||||
|
CREATE SCHEMA |
||||||
|
</refname> |
||||||
|
<refpurpose> |
||||||
|
define a new schema |
||||||
|
</refpurpose> |
||||||
|
</refnamediv> |
||||||
|
<refsynopsisdiv> |
||||||
|
<synopsis> |
||||||
|
CREATE SCHEMA <replaceable class="parameter">schemaname</replaceable> [ AUTHORIZATION <replaceable class="parameter">username</replaceable> ] [ <replaceable class="parameter">schema_element</replaceable> [ ... ] ] |
||||||
|
CREATE SCHEMA AUTHORIZATION <replaceable class="parameter">username</replaceable> [ <replaceable class="parameter">schema_element</replaceable> [ ... ] ] |
||||||
|
</synopsis> |
||||||
|
|
||||||
|
<refsect2 id="R2-SQL-CREATESCHEMA-1"> |
||||||
|
<title> |
||||||
|
Inputs |
||||||
|
</title> |
||||||
|
<para> |
||||||
|
|
||||||
|
<variablelist> |
||||||
|
<varlistentry> |
||||||
|
<term><replaceable class="parameter">schemaname</replaceable></term> |
||||||
|
<listitem> |
||||||
|
<para> |
||||||
|
The name of a schema to be created. If this is omitted, the username |
||||||
|
is used as the schema name. |
||||||
|
</para> |
||||||
|
</listitem> |
||||||
|
</varlistentry> |
||||||
|
|
||||||
|
<varlistentry> |
||||||
|
<term><replaceable class="parameter">username</replaceable></term> |
||||||
|
<listitem> |
||||||
|
<para> |
||||||
|
The name of the user who will own the schema. If omitted, |
||||||
|
defaults to the user executing the command. Only superusers |
||||||
|
may create schemas owned by users other than themselves. |
||||||
|
</para> |
||||||
|
</listitem> |
||||||
|
</varlistentry> |
||||||
|
|
||||||
|
<varlistentry> |
||||||
|
<term><replaceable class="parameter">schema_element</replaceable></term> |
||||||
|
<listitem> |
||||||
|
<para> |
||||||
|
An SQL statement defining an object to be created within the schema. |
||||||
|
Currently, only <command>CREATE TABLE</>, <command>CREATE VIEW</>, |
||||||
|
and <command>GRANT</> are accepted as clauses within |
||||||
|
<command>CREATE SCHEMA</>. Other kinds of objects may be created |
||||||
|
in separate commands after the schema is created. |
||||||
|
</para> |
||||||
|
</listitem> |
||||||
|
</varlistentry> |
||||||
|
</variablelist> |
||||||
|
</para> |
||||||
|
</refsect2> |
||||||
|
|
||||||
|
<refsect2 id="R2-SQL-CREATESCHEMA-2"> |
||||||
|
<title> |
||||||
|
Outputs |
||||||
|
</title> |
||||||
|
<para> |
||||||
|
|
||||||
|
<variablelist> |
||||||
|
<varlistentry> |
||||||
|
<term><computeroutput> |
||||||
|
CREATE |
||||||
|
</computeroutput></term> |
||||||
|
<listitem> |
||||||
|
<para> |
||||||
|
Message returned if the command is successful. |
||||||
|
</para> |
||||||
|
</listitem> |
||||||
|
</varlistentry> |
||||||
|
<varlistentry> |
||||||
|
<term><computeroutput> |
||||||
|
ERROR: namespace "<replaceable class="parameter">schemaname</replaceable>" already exists |
||||||
|
</computeroutput></term> |
||||||
|
<listitem> |
||||||
|
<para> |
||||||
|
If the schema specified already exists. |
||||||
|
</para> |
||||||
|
</listitem> |
||||||
|
</varlistentry> |
||||||
|
</variablelist> |
||||||
|
</para> |
||||||
|
</refsect2> |
||||||
|
</refsynopsisdiv> |
||||||
|
|
||||||
|
<refsect1 id="R1-SQL-CREATESCHEMA-1"> |
||||||
|
<title> |
||||||
|
Description |
||||||
|
</title> |
||||||
|
<para> |
||||||
|
<command>CREATE SCHEMA</command> will enter a new schema |
||||||
|
into the current database. |
||||||
|
The schema name must be distinct from the name of any existing schema |
||||||
|
in the current database. |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
A schema is essentially a namespace: |
||||||
|
it contains named objects (tables, datatypes, functions, and operators) |
||||||
|
whose names may duplicate those of other objects existing in other |
||||||
|
schemas. Named objects are accessed either by <quote>qualifying</> |
||||||
|
their names with the schema name as a prefix, or by setting a search |
||||||
|
path that includes the desired schema(s). |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
Optionally, <command>CREATE SCHEMA</command> can include subcommands |
||||||
|
to create objects within the new schema. The subcommands are treated |
||||||
|
essentially the same as separate commands issued after creating the |
||||||
|
schema, except that if the <literal>AUTHORIZATION</> clause is used, |
||||||
|
all the created objects will be owned by that user. |
||||||
|
</para> |
||||||
|
|
||||||
|
<refsect2 id="R2-SQL-CREATESCHEMA-3"> |
||||||
|
<title> |
||||||
|
Notes |
||||||
|
</title> |
||||||
|
|
||||||
|
<para> |
||||||
|
To create a schema, the invoking user must have <literal>CREATE</> |
||||||
|
privilege for the current database. (Of course, superusers bypass |
||||||
|
this check.) |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
Use <command>DROP SCHEMA</command> to remove a schema. |
||||||
|
</para> |
||||||
|
</refsect2> |
||||||
|
</refsect1> |
||||||
|
|
||||||
|
<refsect1 id="R1-SQL-CREATESCHEMA-2"> |
||||||
|
<title> |
||||||
|
Examples |
||||||
|
</title> |
||||||
|
<para> |
||||||
|
Create a schema: |
||||||
|
|
||||||
|
<programlisting> |
||||||
|
CREATE SCHEMA myschema; |
||||||
|
</programlisting> |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
Create a schema for user <literal>joe</> --- the schema will also |
||||||
|
be named <literal>joe</>: |
||||||
|
|
||||||
|
<programlisting> |
||||||
|
CREATE SCHEMA AUTHORIZATION joe; |
||||||
|
</programlisting> |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
Create a schema and create a table and view within it: |
||||||
|
|
||||||
|
<programlisting> |
||||||
|
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; |
||||||
|
</programlisting> |
||||||
|
Notice that the individual subcommands do not end with semicolons. |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
The following is an equivalent way of accomplishing the same result: |
||||||
|
<programlisting> |
||||||
|
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; |
||||||
|
</programlisting> |
||||||
|
</para> |
||||||
|
</refsect1> |
||||||
|
|
||||||
|
<refsect1 id="R1-SQL-CREATESCHEMA-3"> |
||||||
|
<title> |
||||||
|
Compatibility |
||||||
|
</title> |
||||||
|
|
||||||
|
<refsect2 id="R2-SQL-CREATESCHEMA-4"> |
||||||
|
<title> |
||||||
|
SQL92 |
||||||
|
</title> |
||||||
|
|
||||||
|
<para> |
||||||
|
SQL92 allows a <literal>DEFAULT CHARACTER SET</> clause in |
||||||
|
<command>CREATE SCHEMA</command>, as well as more subcommand types |
||||||
|
than are presently accepted by <productname>PostgreSQL</productname>. |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
SQL92 specifies that the subcommands in <command>CREATE SCHEMA</command> |
||||||
|
may appear in any order. The present |
||||||
|
<productname>PostgreSQL</productname> implementation does not handle all |
||||||
|
cases of forward references in subcommands; it may sometimes be necessary |
||||||
|
to reorder the subcommands to avoid forward references. |
||||||
|
</para> |
||||||
|
|
||||||
|
<para> |
||||||
|
In SQL92, the owner of a schema always owns all objects within it. |
||||||
|
<productname>PostgreSQL</productname> allows schemas to contain objects |
||||||
|
owned by users other than the schema owner. This can happen only if the |
||||||
|
schema owner grants <literal>CREATE</> rights on his schema to someone |
||||||
|
else. |
||||||
|
</para> |
||||||
|
</refsect2> |
||||||
|
</refsect1> |
||||||
|
</refentry> |
||||||
|
|
||||||
|
<!-- Keep this comment at the end of the file |
||||||
|
Local variables: |
||||||
|
mode: sgml |
||||||
|
sgml-omittag:nil |
||||||
|
sgml-shorttag:t |
||||||
|
sgml-minimize-attributes:nil |
||||||
|
sgml-always-quote-attributes:t |
||||||
|
sgml-indent-step:1 |
||||||
|
sgml-indent-data:t |
||||||
|
sgml-parent-document:nil |
||||||
|
sgml-default-dtd-file:"../reference.ced" |
||||||
|
sgml-exposed-tags:nil |
||||||
|
sgml-local-catalogs:"/usr/lib/sgml/catalog" |
||||||
|
sgml-local-ecat-files:nil |
||||||
|
End: |
||||||
|
--> |
Loading…
Reference in new issue