Ограничение CHECK
Ограничение CHECK
задаёт условие, которому должны удовлетворять значения, помещаемые в данный столбец.Условие — это логическое выражение, называемое также предикат, которое может возвращать значения TRUE
(истина), FALSE
(ложь) и UNKNOWN
(неизвестно). Условие считается выполненным, если предикат возвращает значение TRUE
или UNKNOWN
(эквивалент NULL
). Если предикат возвращает FALSE
, то значение не будет принято.Это условие используется при добавлении в таблицу новой строки (оператор INSERT
) и при изменении существующего значения столбца таблицы (оператор UPDATE
), а также операторов, в которых может произойти одно из этих действий (UPDATE OR INSERT
, MERGE
).
Important
|
При использовании предложения |
На уровне столбца или таблицы выражение в предложении CHECK
ссылается на входящее значения с помощью с помощью идентификаторов столбцов, в отличие от доменов, где в ограничении CHECK
для этих целей используется ключевое слово VALUE
.
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)
);