Eine CONSTRAINT-Definition (constraint_definition) definiert eine Integritätsbedingung, der alle Zeilen einer Tabelle genügen müssen.
<constraint_definition>
::= CHECK <search_condition>
| CONSTRAINT <search_condition>
| CONSTRAINT <constraint_name>
CHECK <search_condition>
SQL-Tutorial, Constraints
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.
Die Suchbedingung search_condition der CONSTRAINT-Definition darf keine Subquery enthalten und sie darf Spaltennamen nur in der Form column_name enthalten.
·
Kein Constraint-Name angegeben:
Vom Datenbanksystem wird ein für die Tabelle eindeutiger Constraint-Name
vergeben.
·
Constraint-Name angegeben:
Der Constraint-Name muss sich von allen anderen Constraint-Namen der Tabelle
unterscheiden.
Die Anzahl der Spalten in einer Suchbedingung spielt eine Rolle.
·
Die Suchbedingung enthält nur einen
Spaltennamen der Tabelle:
Beim Erzeugen der Tabelle (CREATE
TABLE-Anweisung) kann geprüft werden, ob ein zusätzlich als Spaltenattribut
angegebener DEFAULT-Wert die Suchbedingung erfüllt. Ist dies nicht der Fall,
scheitert die CREATE TABLE-Anweisung.
·
Die Suchebedingung enthält mehr als einen
Spaltennamen der Tabelle:
Zum Zeitpunkt der Tabellenerzeugung (CREATE TABLE-Anweisung) kann nicht
entschieden werden, ob DEFAULT-Werte der Tabellenspalten die Suchbedingung
erfüllen. In diesem Fall kann der Versuch, DEFAULT-Werte in die Tabelle
einzufügen, bei Ausführung einer INSERT- oder UPDATE-Anweisung
scheitern.
Siehe auch: