![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Ограничения на значения столбцов
При определении (изменении) таблицы или домена на значения столбца могут налагаться ограничения. В этом случае InterBase будет автоматически отслеживать вводимые в столбец значения, отвергая те из них, которые не удовлетворяют наложенным на столбец ограничениям. Ограничение накладывается спецификатором CHECK и имеет такой формат: CHECK (< ограничение>) < ограничение> = {< значение> < знак операции> {< значение1> | (< выбор_одного>)} |< значение> [NOT] BETWEEN < значение1> AND < значение2> |< значение> [NOT] LIKE < маска_подобия> [ESCAPE < символ> ] |< значение> [NOT] IN (< значение1> [, < значение2>...] | < выбор_многих>) < значение> IS [NOT] NULL |< значение> {[NOT] {=| < | > } | > = | < =} {ALL | SOME | ANY} (< выбор_многих>) EXISTS (< выражение_выбора>) SINGULAR (< выражение_выбора>) < значение> [NOT] CONTAINING < значение1> < значение> [NOT] STARTING [WITH] < строка> NOT < ограничение> < ограничение> OR < ограничение> < ограничение> AND < ограничение> }
< значение> = {столбец | < константа> | < выражение> | < функция> |NULL | USER | RDB$DB_KEY } [COLLATE collation]
< константа> = число | " строка"
< Функция> = { COUNT (* | [ALL] < значение> | ISTINCT < значение>) |SUM ([ALL] < значение> |DISTINCT < значение>) |AVG ([ALL] < значение> |DISTINCT < значение>) |MAX ([ALL] < значение> | DISTINCT < значение>) |MIN ([ALL] < значение> | DISTINCT < значение>) |CAST (< значение> AS < тип_данных>) |UPPER (< значение>) |GEN_ID (генератор, < значение>) } Ниже перечислены используемые обозначения. 12. < знак операции> — один из следующих символов или их комбинация: < > < = > =! <! > < > ! = 13. < выбор_одного> — оператор SELECT, возвращающий одно значение или не возвращающий ничего; 14. < маска_подобия> — произвольная строка, возможно, содержащая символы-заменители % (символ процента) и/или _ (символ подчеркивания): • символ процента означает произвольное (в том числе и нулевое) количество любых символов, которые могут стоять на его месте; • символ подчеркивания означает, что на его месте должен стоять любой символ' О < символ> — любой символ, отличный от символа-заменителя, который в маске подобия играет роль символа-заменителя; · < выбор_многих> — оператор SELECT, который может возвращать более одного значения (список значений) или ни одного; · < выражение_выбора> — оператор SELECT, который может возвращать более одного значения (список значений) или ни одного. Примеры наложения ограничений: CREATE TABLE MixTable ( /* Столбец не должен содержать отрицательных значений */ Coll INT CHECK(Coll> =0), /* Значения столбца > = 100 и < = 200 */ Со12 INT CHECK(Col2 BETWEEN 100 AND 200), /* Значения столбца должны заканчиваться символами " у.е." Со13 CHAR(40) CHECK(Col3 LIKE '% у.е. '), /* Значения столбца должны заканчиваться символом " %" */ Со14 CHAR(20) CHECK(Col4 LIKE '%! %' ESCAPE '! '), /* Значения столбца должны совпадать с одним из значений столбца NakllD таблицы Nakls */ Со15 INT CHECK(Col5 IN (SELECT BookID FROM Books)), /* Столбец должен содержать значения большие, чем значение, возвращаемое генератором GEN_BOOKS */ Со16 INT CHECK(Со1б > Gen_ID(GEN_BOOKS, 0)), /* Строка в значении столбца должна начинаться пробелом */ Со17 CHAR(5) CHECK(Col7 STARTING WITH " "))
|