ПРОВЕРКА Ограничения на типа - SQL програмиране
Ограниченията на типа CHECK (ограничения за проверка) ви позволяват да извършвате операции за сравнение, за да определите дали стойностите отговарят на определени определени условия. Синтаксисът за ограниченията CHECK е много подобен на общия синтаксис на ограниченията.
ОГРАНИЧЕНИЕ [име на ограничение] ПРОВЕРКА (критерии_за_търсене) [отложено ограничение] [отложено_време]
Други елементи на това ограничение ще бъдат обсъдени в този раздел. термини за търсене
Параметърът дефинира, използвайки един или повече изрази и предикат, едно или повече условия за търсене, които поставят ограничения върху стойностите, вмъкнати в колоната или таблицата. Можете да зададете множество условия за търсене за колона, като използвате операторите И и ИЛИ. (Запомнете клаузата WHERE.)
Счита се, че дадена стойност удовлетворява ограничението на чипа CHECK, ако резултатът от проверката на условията за търсене е TRUE или UNKNOWN. Ограниченията на типа CHECK използват само булеви оператори (напр. =, >=, ), въпреки че могат да включват всеки SQL 2003 предикат, като IN или LIKE. Ограниченията на типа CHECK могат да бъдат свързани едно с друго (когато се проверява една колона) с помощта на операторите И и ИЛИ. Ето още няколко правила относно ограниченията CHECK.
Една колона или таблица може да включва едно или повече ограничения на типа
Условията за търсене не могат да съдържат агрегатни функции, освен когато се използват в подзаявка.
Условията за търсене не могат да използват недетерминирани функции и подзаявки.
Ограничение от тип CHECK може да се отнася само до идентични обекти. Следователно, ако ограничение е декларирано в глобална временна таблица, то не може да препраща към постоянна таблица.
Следните функции не могат да бъдат посочени в условията на търсенеANSI: CURRENT_USER, SESSION USER, SYSTEMUSER, USER, CURRENT_PATH, CURRENT_DATE, CURRENT_DATE, CURRENTMESTAMP, LOCALTIME и LOCALT1MESTAMP.
Следващият пример добавя ограничение за проверка към колоните dist_id и zip. (Този пример използва общ код, който се изпълнява на SQL Server.) Пощенският код трябва да съответства на типичните диапазони от пощенски кодове, а стойностите на колоната distid могат да съдържат или четири азбучни знака, или два азбучни и два цифрови знака.
Създаване на ниво колона ПРОВЕРКА на ограничения СЪЗДАВАНЕ на ТАБЛИЦА разпределители (dist_id CHAR(4)
ОГРАНИЧЕНИЕ pk_dist_id ОГРАНИЧЕНИЕ НА ОСНОВЕН КЛЮЧ ck_dist_id ПРОВЕРКА
(dist_id КАТО '[A-Z] [A-Z] [A-Z] [A-Z]' ИЛИ dist_id КАТО '[A-Z] [A-Z] [0-9] [0-9]'), dist_name VARCHAR(40)
dist_addressl VARCHAR(40), dist_address2 VARCHAR(40), град VARCHAR(20).
състояние CHAR(2) CONSTRAINT def_st DEFAULT('CA'), zip CHAR(5)
ОГРАНИЧЕНИЕ unq_dist_zip УНИКАЛНО ОГРАНИЧЕНИЕ ck_dist_zip ПРОВЕРКА
(zip LIKE '[0-9] [0-9] [0-9] [0-9] [0-9]'), телефон CHAR(12), sales_rep INT
NOT NULL ПОТРЕБИТЕЛСКИ РЕФЕРЕНЦИИ ПО ПОДРАЗБИРАНЕ служител (emp_id))
Допълнителна информация по темата
Описание на ограничението UNIQUE, основни правила за използване в различни платформи за бази данни
Основни правила за ограничения на FOREIGN KEY, специфики на използване за различни платформи
Описание на ограничението PRIMARY KEY, как да го използвате, какви функции за различните платформи
Ограничения в базите данни, какво се случва, за какво съществуват и се използват, синтаксис