CHECK
-Einschränkung
Die Einschränkung CHECK
definiert die Bedingung, die die in diese Spalte eingefügten Werte erfüllen müssen.Eine Bedingung ist ein logischer Ausdruck (auch Prädikat genannt), der die Werte TRUE, FALSE und UNKNOWN zurückgeben kann.Eine Bedingung gilt als erfüllt, wenn das Prädikat TRUE oder den Wert UNKNOWN (entspricht NULL
) zurückgibt.Wenn das Prädikat FALSE zurückgibt, wird der Wert nicht akzeptiert.Diese Bedingung wird zum Einfügen einer neuen Zeile in die Tabelle (die INSERT
-Anweisung) und zum Aktualisieren des vorhandenen Wertes der Tabellenspalte (die UPDATE
-Anweisung) und auch für Anweisungen verwendet, bei denen eine dieser Aktionen stattfinden kann (UPDATE ODER EINFÜGEN, MERGE).
Important
|
Eine |
CHECK
-Einschränkungen — ob auf Tabellen- oder Spaltenebene definiert — beziehen sich auf Tabellenspalten nach ihren Namen.Die Verwendung des Schlüsselworts VALUE
als Platzhalter – wie in den CHECK
-Einschränkungen der Domäne – ist im Kontext der Definition von Spalteneinschränkungen nicht gültig.
mit zwei Einschränkungen auf Spaltenebene und einer auf Tabellenebene:
CREATE TABLE PLACES (
...
LAT DECIMAL(9, 6) CHECK (ABS(LAT) <= 90),
LON DECIMAL(9, 6) CHECK (ABS(LON) <= 180),
...
CONSTRAINT CHK_POLES CHECK (ABS(LAT) < 90 OR LON = 0)
);