| PostgreSQL: Das Offizielle Handbuch | ||||
|---|---|---|---|---|
| Zurück | Schnell zurück | Schnell nach vorne | Nach vorne | |
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.
Der Name der zu erzeugenden Domäne (möglicherweise mit Schemaqualifikation).
Der Datentyp, der der Domäne zugrunde liegt. Dieser kann Arrayangaben enthalten.
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.
Wert in dieser Domäne dürfen nicht den NULL-Wert haben.
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.
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);
Der Befehl CREATE DOMAIN ist mit dem SQL-Standard konform. Allerdings unterstützt PostgreSQL noch keine Check-Constraints für Domänen.
| Zurück | Zum Anfang | Nach vorne |
| CREATE DATABASE | Nach oben | CREATE FUNCTION |