Синтаксис запроса определения домена имеет следующий вид:
CREATE DOMAIN имя_домена [AS] <тип_данных>
[DEFAULT { литерал | NULL | USER}]
[NOT NULL] [CHECK ( <ограничение_домена>)];, где
имя_домена – имя создаваемого домена; <тип_данных> – тип данных, представленный в табл. 2.5;
DEFAULT– ключевое слово, определяющее значение по умолчанию, применяемое к каждому столбцу как:
- литерал – константа строкового, числового типа или типа дата/время (соответствует типу данных домена);
- NULL – значение NULL;
- USER – контекстная переменная, возвращающая имя пользователя, подключенного к БД.
Следующие предложения задают набор ограничений целостности к каждому столбцу, определенному на этом домене:
- NOT NULL – чтобы столбец не имел NULL-значения. Этот атрибут используется при определении домена, если требуется, чтобы все столбцы,создаваемые на основе этого домена, имели непустое значение. Следует помнить, что переопределить атрибут NOT NULL, заданный для домена, нельзя. Часто неизвестно, действительно ли потребуется, чтобы все столбцы, определяемые на домене, имели NOT NULL значения. Также часто требуется определять внешний ключ на домене без условия NOTNULL. Поэтому предпочтительнее добавлять атрибут NOT NULL при определении столбцов (будет рассмотрено далее);
- CHECK – определяет список ограничений на значение (VALUE) в соответствующем столбце. Ограничение домена фактически повторяет синтаксис условия поиска в предложении WHERE для однотабличных запросов (используются простое сравнение, проверка на принадлежность диапазону, на членство во множестве и т.д.) с той лишь разницей, что вместо точного указания проверяемого значения используется слово VALUE.
предыдущаяследующая