Kategorien:

DDL für Datenbanken, Schemas und Freigaben

CREATE SCHEMA

Erstellt ein neues Schema in der aktuellen Datenbank.

Darüber hinaus kann dieser Befehl zum Klonen eines vorhandenen Schemas verwendet werden, entweder in seinem aktuellen Zustand oder zu einem bestimmten Zeitpunkt in der Vergangenheit (mit Time Travel). Weitere Informationen zum Klonen eines Schemas finden Sie unter Hinweise zum Klonen.

Siehe auch:

ALTER SCHEMA , SHOW SCHEMAS

Syntax

CREATE [ OR REPLACE ] [ TRANSIENT ] SCHEMA [ IF NOT EXISTS ] <name>
  [ CLONE <source_schema>
        [ { AT | BEFORE } ( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> | STATEMENT => <id> } ) ] ]
  [ WITH MANAGED ACCESS ]
  [ DATA_RETENTION_TIME_IN_DAYS = <num> ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]

Erforderliche Parameter

Name

Gibt den Bezeichner für das Schema an. Dieser muss für die Datenbank, in der das Schema erstellt wird, eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Optionale Parameter

TRANSIENT

Gibt ein Schema als transient an. Transiente Schemata haben keine Fail-safe-Frist, sodass ihnen nach Verlassen von Time Travel keine zusätzlichen Speicherkosten entstehen. Das bedeutet aber auch, dass sie bei einem Datenverlust nicht durch Fail-safe geschützt sind. Weitere Informationen finden Sie unter Verstehen und Anzeigen von Fail-safe.

Darüber hinaus sind per Definition alle in einem transienten Schema erstellten Tabellen transient. Weitere Informationen zu transienten Tabellen finden Sie unter CREATE TABLE.

Standard: Kein Wert (d. h. das Schema ist permanent)

CLONE Quellschema

Gibt an, dass ein Klon des angegebenen Quellschemas erstellt wird. Weitere Informationen zum Klonen eines Schemas finden Sie unter CREATE <Objekt> … CLONE.

AT | BEFORE ( TIMESTAMP => Zeitstempel | OFFSET => Zeitunterschied | STATEMENT => ID )

Beim Klonen eines Schemas gibt die AT | BEFORE-Klausel an, dass Time Travel verwendet wird, um das Schema an oder vor einem bestimmten Punkt der Vergangenheit zu klonen.

WITH MANAGED ACCESS

Gibt ein verwaltetes Schema an. Verwaltete Zugriffsschemas zentralisieren die Verwaltung von Berechtigungen für den Schemabesitzer.

In regulären Schemas kann der Besitzer eines Objekts (d. h. die Rolle, die über die Berechtigung OWNERSHIP für das Objekt verfügt) anderen Rollen Berechtigungen für seine Objekte erteilen. In verwalteten Schemas verwaltet der Schemabesitzer alle Berechtigungszuweisungen, einschließlich zukünftiger Zuweisungen, für Objekte im Schema. Objekteigentümer behalten die OWNERSHIP-Berechtigung für die Objekte. Berechtigungszuweisungen für die Objekte können jedoch nur vom Schemaeigentümer verwaltet werden.

DATA_RETENTION_TIME_IN_DAYS = Zahl

Gibt die Anzahl der Tage an, für die Time Travel-Aktionen (CLONE und UNDROP) am Schema ausgeführt werden können, sowie die standardmäßige Time Travel-Aufbewahrungsdauer für alle im Schema erstellten Tabellen. Weitere Details dazu finden Sie unter Verstehen und Verwenden von Time Travel.

Eine ausführliche Beschreibung dieses Parameters auf Objektebene sowie weitere Informationen zu Objektparametern finden Sie unter Parameter. Weitere Informationen zur Aufbewahrungsdauer auf Tabellenebene finden Sie unter CREATE TABLE und Verstehen und Verwenden von Time Travel.

Werte:

  • Standardausführung: 0 oder 1

  • Enterprise Edition:

    • 0 bis 90 für permanente Schemata

    • 0 oder 1 für transiente Schemata

Standard:

  • Standardausführung: 1

  • Enterprise Edition (oder höher): 1 (es sei denn, auf Datenbank- oder Kontoebene wurde ein anderer Standardwert angegeben)

Bemerkung

Der Wert 0 deaktiviert effektiv Time Travel für das Schema.

DEFAULT_DDL_COLLATION = 'Sortierungsspezifikation'

Gibt eine Standardsortierungsspezifikation für alle dem Schema hinzugefügten Tabellen an. Der Standardwert kann auf der Ebene der einzelnen Tabellen überschrieben werden.

Weitere Informationen zu diesem Parameter finden Sie unter DEFAULT_DDL_COLLATION.

COMMENT = 'Zeichenfolgenliteral'

Gibt einen Kommentar zum Schema an.

Standard: Kein Wert

Nutzungshinweise

  • Durch das Erstellen eines Schemas wird es automatisch als aktives/aktuelles Schema für die aktuelle Sitzung festgelegt (entspricht der Verwendung des Befehls USE SCHEMA für das Schema).

  • Wenn bereits ein Schema mit dem gleichen Namen in der Datenbank existiert, wird ein Fehler zurückgegeben, und das Schema wird nicht erstellt, es sei denn, das optionale Schlüsselwort OR REPLACE ist im Befehl angegeben.

    Wichtig

    Die Verwendung von OR REPLACE ist das Äquivalent zur Verwendung von DROP SCHEMA auf dem vorhandenen Schema und zur Erstellung eines neuen Schemas mit dem gleichen Namen; das gelöschte Schema wird jedoch nicht permanent aus dem System entfernt. Stattdessen wird es in Time Travel beibehalten. Dies ist wichtig, da in Time Travel entfernte Schemas den Datenspeicher für Ihr Konto beeinflussen. Weitere Informationen dazu finden Sie unter Speicherkosten für Time Travel und Fail-safe.

  • In einem Schema mit verwaltetem Zugriff verwaltet der Schemabesitzer Berechtigungen für die enthaltenen Objekte (z. B. Tabellen oder Ansichten), verfügt jedoch über keine anderen Berechtigungen (USAGE, SELECT, DROP usw.) für die Objekte.

Beispiele

Legen Sie ein dauerhaftes Schema an:

CREATE SCHEMA myschema;

SHOW SCHEMAS;

+-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+---------+----------------+
| created_on                    | name               | is_default | is_current | database_name | owner        | comment                                                   | options | retention_time |
|-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+---------+----------------|
| 2018-12-10 09:34:02.127 -0800 | INFORMATION_SCHEMA | N          | N          | MYDB          |              | Views describing the contents of schemas in this database |         | 1              |
| 2018-12-10 09:33:56.793 -0800 | MYSCHEMA           | N          | Y          | MYDB          | PUBLIC       |                                                           |         | 1              |
| 2018-11-26 06:08:24.263 -0800 | PUBLIC             | N          | N          | MYDB          | PUBLIC       |                                                           |         | 1              |
+-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+---------+----------------+

Erstellen Sie ein transientes Schema:

CREATE TRANSIENT SCHEMA tschema;

SHOW SCHEMAS;

+-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+-----------+----------------+
| created_on                    | name               | is_default | is_current | database_name | owner        | comment                                                   | options   | retention_time |
|-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+-----------+----------------|
| 2018-12-10 09:34:02.127 -0800 | INFORMATION_SCHEMA | N          | N          | MYDB          |              | Views describing the contents of schemas in this database |           | 1              |
| 2018-12-10 09:33:56.793 -0800 | MYSCHEMA           | N          | Y          | MYDB          | PUBLIC       |                                                           |           | 1              |
| 2018-11-26 06:08:24.263 -0800 | PUBLIC             | N          | N          | MYDB          | PUBLIC       |                                                           |           | 1              |
| 2018-12-10 09:35:32.326 -0800 | TSCHEMA            | N          | Y          | MYDB          | PUBLIC       |                                                           | TRANSIENT | 1              |
+-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+-----------+----------------+

Erstellen Sie ein verwaltetes Zugriffsschema:

CREATE SCHEMA mschema WITH MANAGED ACCESS;

SHOW SCHEMAS;

+-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+----------------+----------------+
| created_on                    | name               | is_default | is_current | database_name | owner        | comment                                                   | options        | retention_time |
|-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+----------------+----------------|
| 2018-12-10 09:34:02.127 -0800 | INFORMATION_SCHEMA | N          | N          | MYDB          |              | Views describing the contents of schemas in this database |                | 1              |
| 2018-12-10 09:36:47.738 -0800 | MSCHEMA            | N          | Y          | MYDB          | ROLE1        |                                                           | MANAGED ACCESS | 1              |
| 2018-12-10 09:33:56.793 -0800 | MYSCHEMA           | N          | Y          | MYDB          | PUBLIC       |                                                           |                | 1              |
| 2018-11-26 06:08:24.263 -0800 | PUBLIC             | N          | N          | MYDB          | PUBLIC       |                                                           |                | 1              |
| 2018-12-10 09:35:32.326 -0800 | TSCHEMA            | N          | Y          | MYDB          | PUBLIC       |                                                           | TRANSIENT      | 1              |
+-------------------------------+--------------------+------------+------------+---------------+--------------+-----------------------------------------------------------+----------------+----------------+