CREATE SCHEMA

The CREATE SCHEMA statement defines a schema at the current server and optionally creates tables, views, aliases, indexes, and distinct types. Comments and labels may be added in the catalog description of tables, views, aliases, indexes, columns, and distinct types. Table, view, and distinct type privileges can be granted to users.

Invocation

This statement can be embedded in an application program or issued interactively. It is an executable statement that can be dynamically prepared.

Authorization

The privileges held by the authorization ID of the statement must include at least one of the following:

The privileges held by the authorization ID of the statement must include at least one of the following:

If the AUTHORIZATION clause is specified, the privileges held by the authorization ID of the statement must also include at least one of the following:

Syntax

Click to skip syntax diagram
Read syntax diagramSkip visual syntax diagram>>-CREATE SCHEMA--+-schema-name-----------------------+--------->
                  '-AUTHORIZATION--authorization-name-'
 
>--+----------------------+------------------------------------->
   '-IN ASP--+-integer--+-'
             '-ASP-name-'
 
>--+----------------------------------------------------+------><
   | .------------------------------------------------. |
   | V                                                | |
   '---+-COMMENT statement--------------------------+-+-'
       +-CREATE ALIAS statement---------------------+
       +-CREATE DISTINCT TYPE statement-------------+
       +-CREATE INDEX statement---------------------+
       +-CREATE SEQUENCE statement------------------+
       +-CREATE TABLE statement---------------------+
       +-CREATE VIEW statement----------------------+
       +-GRANT (Distinct Type Privileges) statement-+
       +-GRANT (Sequence Privileges) statement------+
       +-GRANT (Table Privileges) statement---------+
       |                 (1)                        |
       '-LABEL statement----------------------------'
 
Notes:
  1. Labels and comments on packages, procedures, functions, and parameters are not supported in the CREATE SCHEMA statement.

Description

schema-name
Names the schema. A schema is created using this name. If schema-name is specified, the authorization ID of the statement is the run-time authorization ID. The name must not be the same as the name of an existing schema at the current server.
authorization-name
Identifies the authorization ID of the statement. This authorization name is also the schema-name. The name must not be the same as the name of an existing schema at the current server.
IN ASP integer
Specifies the auxiliary storage pool (ASP) in which to create the schema. The integer must be between 1 and 32. If 1 is specified, the schema is created on the system ASP. If this clause is omitted, an ASP of 1 is assumed.
IN ASP ASP-name
Specifies the auxiliary storage pool (ASP) in which to create the schema. The name must identify an auxiliary stroage pool that exists at the current server.
COMMENT statement
Adds or replaces comments in the catalog descriptions of tables, views, sequences, or columns. Comments on packages are not allowed. See the COMMENT statement COMMENT.
CREATE ALIAS statement
Creates an alias into the schema. See the CREATE ALIAS statement CREATE ALIAS.
CREATE DISTINCT TYPE statement
Creates a user-defined distinct type into the schema. See the CREATE DISTINCT TYPE statement CREATE DISTINCT TYPE.
CREATE INDEX statement
Creates an index into the schema. See the CREATE INDEX statement CREATE INDEX.
CREATE SEQUENCE statement
Creates a sequence into the schema. See the CREATE SEQUENCE statement CREATE SEQUENCE.
CREATE TABLE statement
Creates a table into the schema. See the CREATE TABLE statement CREATE TABLE.
CREATE VIEW statement
Creates a view into the schema. See the CREATE VIEW statement CREATE VIEW.
GRANT (Distinct Type Privileges) statement
Grants privileges for distinct types in the schema. See the GRANT statement GRANT (Distinct Type Privileges).
GRANT (Sequence Privileges) statement
Grants privileges for sequences in the schema. See the GRANT statement GRANT (Sequence Privileges).
GRANT (Table Privileges) statement
Grants privileges for tables and views in the schema. See the GRANT statement GRANT (Table or View Privileges).
LABEL statement
Adds or replaces labels in the catalog descriptions of tables, views, sequences, or columns in the schema. Labels on packages are not allowed. See the LABEL statementLABEL.

Notes

Schema attributes: A schema is created as:

An index created over a distributed table is created on all of the servers across which the table is distributed. For more information about distributed tables, see the DB2® Multisystem book.

Object ownership: The owner of the schema and created objects is determined as follows:

Object authority: If SQL names are used, the schema and any other objects are created with the system authority of *EXCLUDE on *PUBLIC and the library is created with the create authority parameter CRTAUT(*EXCLUDE). The owner is the only user having any authority to the schema. If other users require authority to the schema, the owner can grant authority to the objects created; using the CL command Grant Object Authority (GRTOBJAUT).

If system names are used, the schema and any other objects are created with the system authority given to *PUBLIC is determined by the system value QCRTAUT, and the library is created with CRTAUT(*SYSVAL). For more information about system security, see the books iSeries Security Reference Link to PDF, and the SQL Programming book.

If the owner of the schema is a member of a group profile (GRPPRF keyword) and group authority is specified (GRPAUT keyword), that group profile will also have authority to the schema.

Object names: If a CREATE TABLE, CREATE INDEX, CREATE ALIAS, CREATE DISTINCT TYPE, CREATE SEQUENCE, or CREATE VIEW statement contains a qualified name for the table, index, alias, distinct type, sequence, or view being created, the schema name specified in that qualified name must be the same as the name of the schema being created. Any other object names referenced within the schema definition may be qualified by any schema name. Unqualified table, index, alias, distinct type, sequence, or view names in any SQL statement are implicitly qualified with the name of the created schema.

Delimiters are not used between the SQL statements.

SQL statement length: If the CREATE SCHEMA statement is executed via the RUNSQLSTM command, the maximum length of any individual CREATE TABLE, CREATE INDEX, CREATE DISTINCT TYPE, CREATE ALIAS, CREATE SEQUENCE, CREATE VIEW, COMMENT, LABEL, or GRANT statements within the CREATE SCHEMA statement is 2 097 152. Otherwise, the entire CREATE SCHEMA statement is limited to 2 097 152.

Syntax alternatives: The COLLECTION keyword can be used as a synonym for SCHEMA for compatibility to prior releases. This keyword is non-standard and should not be used.

Deprecated features: The WITH DATA DICTIONARY clause causes an IDDU data dictionary to be created in the schema. While the clause can still be specified at the end of the CREATE SCHEMA statement and is still supported; it is not recommended.

A schema created with a data dictionary cannot contain tables with LOB or DATALINK columns. The clause has no effect on the creation of catalog views.

Examples

Example 1: Create a schema that has an inventory part table and an index over the part number. Give authority to the schema to the user profile JONES.

   CREATE SCHEMA INVENTORY

   CREATE TABLE PART (PARTNO SMALLINT NOT NULL,
                      DESCR  VARCHAR(24),
                      QUANTITY INT)

   CREATE INDEX PARTIND ON PART (PARTNO)

   GRANT ALL ON PART TO JONES

Example 2: Create a schema using the authorization ID of SMITH. Create a student table that has a comment on the student number column.

   CREATE SCHEMA AUTHORIZATION SMITH

   CREATE TABLE SMITH.STUDENT (STUDNBR SMALLINT NOT NULL UNIQUE,
                               LASTNAME CHAR(20),
                               FIRSTNAME CHAR(20),
                               ADDRESS CHAR(50))

   COMMENT ON STUDENT (STUDNBR IS 'THIS IS A UNIQUE ID#')


[ Top of Page | Previous Page | Next Page | Contents | Index ]