CONSTRAINT-Definition (constraint_definition)
Eine CONSTRAINT-Definition (
constraint_definition ) definiert eine Integritätsbedingung (Beschränkungen für Spaltenwerte, siehe Datenintegrität), der alle Zeilen einer Tabelle genügen müssen.Syntax
<constraint_definition> ::= CHECK <search_condition>
| CONSTRAINT <search_condition>
| CONSTRAINT <constraint_name> CHECK <search_condition>

Einfaches Constraint (für eine Spalte), Beispieltabelle
kundeanrede CHAR (7) CONSTRAINT anrede IN ('Herr', 'Frau', 'Firma')
Kompliziertes Constraint (für mehrere Spalten), Beispieltabelle
buchungankunft DATE NOT NULL
abreise DATE CONSTRAINT abreise > ankunft
Es wird überprüft, ob die Ankunft vor der Abreise liegt.
Erläuterung
Eine CONSTRAINT-Definition definiert eine Integritätsbedingung, die alle Spaltenwerte der durch die
Spaltendefinition mit CONSTRAINT-Definition definierten Spalte erfüllen müssen.Die CONSTRAINT-Definition einer Spalte wird beim Einfügen einer Zeile und beim Ändern einer Spalte, die in der CONSTRAINT-Definition auftritt, überprüft. Wird die CONSTRAINT-Definition verletzt, scheitert die INSERT- bzw. UPDATE-Anweisung.
Durch die Definition eines Constraints wird implizit festgelegt, daß der NULL-Wert nicht als Eingabe zugelassen ist.
Die Suchbedingung (
search_condition ) der CONSTRAINT-Definition darf keine Subquery enthalten.Die Suchbedingung der CONSTRAINT-Definition darf Spaltennamen nur in der Form
<column_name> enthalten.Constraint-Name
Anzahl der Spalten in einer Suchbedingung