CREATE SCHEMA erzeugt ein Schema. Gleichzeitig können Tabellen, Views, Routinen, Privilegien und Indizes definiert werden. Das Schema kann zu einem späteren Zeitpunkt mit den jeweiligen CREATE-, ALTER- und DROP-Anweisungen verändert werden.
Der aktuelle Berechtigungsschlüssel muss das Sonder-Privileg CREATE SCHEMA besitzen.
CREATE SCHEMA
{
schema [AUTHORIZATION
berechtigungsschlüssel ] |
AUTHORIZATION
berechtigungsschlüssel }
[
create_table_anweisung |
create_view_anweisung |
create_function_anweisung |
create_procedure_anweisung |
grant_anweisung |
create_index_anweisung ] ...
schema
Name für das Schema. Der einfache Schemaname muss innerhalb der Datenbank eindeutig sein. Der Schemaname kann durch einen Datenbanknamen qualifiziert werden.
schema nicht angegeben:
Der Name des Berechtigungsschlüssels in der AUTHORIZATION-Klausel wird als Schemaname verwendet.
AUTHORIZATION berechtigungsschlüssel
Der Berechtigungsschlüssel wird Eigentümer des Schemas.
Dieser Berechtigungsschlüssel wird auch als Name des Schemas verwendet, wenn kein Schemaname angegeben wird.
AUTHORIZATION berechtigungsschlüssel nicht angegeben:
Wurde für die Übersetzungseinheit ein Berechtigungsschlüssel definiert, wird dieser der Eigentümer des Schemas. Sonst wird der aktuelle Berechtigungsschlüssel Eigentümer des Schemas.
create / grant_anweisungen
Werden in den CREATE- und GRANT-Anweisungen einfache Namen von Tabellen, Routinen und Indizes verwendet, werden die Namen automatisch mit dem Datenbank- und Schemanamen des Schemas qualifiziert.
create_table_anweisung
CREATE TABLE-Anweisung, die eine Basistabelle für das Schema erzeugt.
create_view_anweisung
CREATE VIEW-Anweisung, die einen View für das Schema erzeugt.
create_function_anweisung
CREATE FUNCTION-Anweisung, die eine UDF für das Schema erzeugt.
create_procedure_anweisung
CREATE PROCEDURE-Anweisung, die eine Prozedur für das Schema erzeugt.
grant_anweisung
GRANT-Anweisung, die Privilegien für eine Basistabelle, einen View oder eine Routine dieses Schemas vergibt. Die GRANT-Anweisung darf keine Sonder-Privilegien vergeben..
create_index_anweisung
CREATE INDEX-Anweisung, die einen Index für eine Basistabelle erzeugt.
create / grant_anweisungen nicht angegeben:
Es wird ein leeres Schema eingerichtet.
Arbeitsweise von CREATE SCHEMA
Die Anweisungen CREATE TABLE, CREATE VIEW, CREATE FUNCTION, CREATE PROCEDURE, GRANT und CREATE INDEX, die innerhalb der CREATE SCHEMA-Anweisung angegeben werden, werden genau in der angegebenen Reihenfolge ausgeführt.
Anweisungen, die sich auf bereits existierende Tabellen, Routinen oder Views beziehen, müssen deshalb nach der Anweisung stehen, die diese Tabellen, Routinen oder Views erzeugt.
Beispiel
Das Beispiel erzeugt das Schema ZUSAETZE und legt die Tabelle BILDER an. Die Privilegien für die Tabelle BILDER werden an den Berechtigungsschlüssel utianw1 vergeben.
CREATE SCHEMA zusaetze CREATE TABLE bilder OF BLOB ( MIME ('image / gif'), USAGE ('Abbildungen fuer teile.katart.abb'), '<Fotograf>Hans Sesamer</Fotograf>' ) USING SPACE blobspace GRANT ALL PRIVILEGES ON bilder TO utianw1
Siehe auch
CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE FUNCTION, CREATE PROCEDURE, GRANT, DROP SCHEMA