CREATE DOMAIN

Name

CREATE DOMAIN -- definiert eine neue Domäne

Synopsis

CREATE DOMAIN name [AS] datentyp
    [ DEFAULT ausdruck ]
    [ NOT NULL | NULL ]

Beschreibung

Mit CREATE DOMAIN erzeugt eine neue Datendomäne. Der Benutzer, der sie definiert, wird ihr Eigentümer.

Wenn ein Schemaname angegeben wurde (zum Beispiel CREATE DOMAIN mein_schema.meine_domäne ...), dann wird die Domäne im angegebenen Schema erzeugt, ansonsten wird sie im aktuellen Schema erzeugt. Der Domänenname muss unter allen Typen und Domänen im Schema einmalig sein.

Domänen sind nützlich um Spalten, die in mehreren Tabellen gleich eingerichtet sind, an einer einzigen Stelle zu konfigurieren. Wenn man zu Beispiel in mehreren Tabellen eine Spalte mit Email-Adressen hat, dann kann man dafür eine Domäne definieren, anstatt die Constraints in allen Tabellen einzeln einzurichten.

Parameter

name

Der Name der zu erzeugenden Domäne (möglicherweise mit Schemaqualifikation).

datentyp

Der Datentyp, der der Domäne zugrunde liegt. Dieser kann Arrayangaben enthalten.

DEFAULT ausdruck

Diese Klausel gibt einen Vorgabewert für Spalten mit dem Domänendatentyp an. Der Wert kann jeder beliebige Ausdruck ohne Variablen sein (Unteranfragen sind nicht erlaubt). Der Datentyp des Ausdrucks muss mit dem Datentyp der Domäne übereinstimmen. Wenn kein Vorgabewert angegeben wurde, dann ist der NULL-Wert der Vorgabewert.

Der Vorgabewert wird bei jeder Einfügeoperation verwendet, die keinen Wert für die Spalte angibt. Wenn für eine bestimmte Spalte ein Vorgabewert definiert ist, dann wird dieser statt dem Vorgabewert der Domäne verwendet. Der Vorgabewert der Domäne hat wiederum Vorrang vor einem etwaigen Vorgabewert des zugrunde liegenden Datentyps.

NOT NULL

Wert in dieser Domäne dürfen nicht den NULL-Wert haben.

NULL

Werte in dieser Domäne dürfen den NULL-Wert haben. Das ist die Voreinstellung.

Diese Klausel ist nur für die Kompatibilität mit nicht Standard-konformen SQL-Datenbanken gedacht. Sie sollte nicht in neuen Anwendungen verwendet werden.

Meldungen

CREATE DOMAIN

Meldung, wenn die Domäne erfolgreich erzeugt wurde.

Beispiele

Dieses Beispiel erzeugt eine Domäne ländercode und verwendet sie dann in einer Tabellendefinition:

CREATE DOMAIN ländercode char(2) NOT NULL;
CREATE TABLE länderliste (id integer, land ländercode);

Kompatibilität

Der Befehl CREATE DOMAIN ist mit dem SQL-Standard konform. Allerdings unterstützt PostgreSQL noch keine Check-Constraints für Domänen.

Siehe Auch

DROP DOMAIN