Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CREATE DOMAIN

Описание

Инструкция CREATE DOMAIN создает наследуемое определение столбца, оно используется как шаблон при определении столбцов в инструкциях CREATE TABLE или ALTER TABLE. Определение домена содержит установки характеристик, которые включают:

  • Тип данных.
  • Факультативно значение по умолчанию.
  • Факультативно недопустимость значения NULL.
  • Факультативно CHECK ограничения.
  • Факультативно порядок сортировки.

CHECK ограничения в определении домена устанавливают <dom_search_condition>, которые должны быть истины для данных введенных в столбецы, базирующиеся на домене. CHECK ограничения не могут ссылаться на любой домен или столбец.

Обратите внимание: Будте осторожны при создании домена. Возможно, создать домен с противоречивыми ограничениями, например, как объявление домена NOT NULL и назначения его DEFAULT значение к NULL.

CHAR, VARCHAR или BLOB-текст спецификация типа данных в определении домена может включать CHARACTER SET предложение, для определения кодировки домена. Иначе, домен использует определенную по умолчанию кодировку для базы данных.

COLLATE предложение дает возможность описать орпределенный порядок сортировки для CHAR, VARCHAR и BLOB-техт типа данных. Выбор типа сортировки ограничен поддерживаемыми для данной кодировки домена, которая является либо заданной по умолчанию для всей базы данных, либо определенной в предложении CHARACTER SET, как часть определения типа данных. Смотри Language Reference, что бы получить полный список возможных сортировок.

Столбцы базирующиеся на определении домена наследуют все характеристики домена. Значение по умолчанию, порядок сортировки и NOT NULL установка могут быть преопределены, когда определяется столбец основаный на домене. Столбец остнованый на домене может добавлять дополнительные CHECK ограничения к CHECK ограничению домена.

Синтаксис

CREATE DOMAIN domain [AS] <datatype>

[DEFAULT {literal | NULL | USER}]
  [NOT NULL] [CHECK (<dom_search_condition>)]
  [COLLATE collation];

Обратите внимание: COLLATE предложение не может быть определено для BLOB столбца.

<datatype> = {
{SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION} [<array_dim>]
  | {DECIMAL | NUMERIC} [(precision [, scale])] [<array_dim>]
  | DATE [<array_dim>]
  | {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR}
    [(1...32767)] [<array_dim>] [CHARACTER SET charname]
  | {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR}
    [VARYING] [(1...32767)] [<array_dim>]
  | BLOB [SUB_TYPE {int | subtype_name}] [SEGMENT SIZE n]

[CHARACTER SET charname]
  | BLOB [(seglen [, subtype])]
  }

<array_dim> = [x:y [, x:y ...]]

Обратите внимание: Внешнии скобки (выделены жирным) должны быть включены в объявление массивов.

<dom_search_condition> = {
VALUE <operator> <val>
  | VALUE [NOT] BETWEEN <val> AND <val>
  | VALUE [NOT] LIKE <val> [ESCAPE <val>]
  | VALUE [NOT] IN (<val> [, <val> ...])
  | VALUE IS [NOT] NULL
  | VALUE [NOT] CONTAINING <val>
  | VALUE [NOT] STARTING [WITH] <val>
  | (<dom_search_condition>)
  | NOT <dom_search_condition>
  | <dom_search_condition> OR <dom_search_condition>
  | <dom_search_condition> AND <dom_search_condition>
  }

<operator> = {= | < | > | <= | >= | !< | !> | <> | !=}
Аргумент Описание
domain Уникальное имя для домена.
<datatype> Тип данных QSL.
DEFAULT Определяет значение по умолчанию, которое вставляется, когда ни какой другой ввод не сделан. Значения:
  • literal: Вводится определенная строка, числовое значение или дата.
  • NULL: Вводится значение NULL.
  • USER: Вводится имя текущего пользователя. Столбец должен быть совместимый символьный тип, что бы использовать значение по умолчанию.
NOT NULL Определяет, что значения введенные в столбец не могут быть NULL.
CHECK (<dom_search_condition>) создает одиночное CHECK ограничение для домена.
VALUE Заменитель для имени столбца, в конечном счете, основанном на домене.
COLLATE collation Устанавливает способ сортировки для домена.

Примеры

Следующая инструкция создает домен, который может принимать положительные значения больше 1000, со значением по умолчанию 9999. Ключевое слово VALUE заменяется именем столбца основанном на этом домене.

CREATE DOMAIN CUSTNO
  AS INTEGER
    DEFAULT 9999
    CHECK (VALUE > 1000);

Следующая инструкция ограничивает введенные значения в домен до четырех определенных значений:

CREATE DOMAIN PRODTYPE
  AS VARCHAR(12)
    CHECK (VALUE IN ("software", "hardware", "other", "N/A"));

Следующая инструкция создает домен, который определяется, как массив символов (CHARACTER):

CREATE DOMAIN DEPTARRAY AS CHAR(31) [4:5];

В следующем примере, первая инструкция создает домен со значением по умолчанию USER. Следующая инструкция создает таблицу, которая включает столбец ENTERED_BY, базирующийся на домене USERNAME. Инструкция INSERT не содержит значение для столбца ENTERED_BY, по этому InterBase автоматически вставляет имя текущего пользователя JSMITH:

CREATE DOMAIN USERNAME AS VARCHAR(20)
  DEFAULT USER;

CREATE TABLE ORDERS (ORDER_DATE DATE, ENTERED_BY USERNAME, ORDER_AMT DECIMAL(8,2));

INSERT INTO ORDERS (ORDER_DATE, ORDER_AMT)
  VALUES ("1-MAY-93", 512.36);

SELECT * FROM ORDERS;
1-MAY-93 JSMITH 512.36

Следующая инструкция создает домен с типом BLOB-текст и определяет кодировку:

CREATE DOMAIN DESCRIPT AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80
  CHARACTER SET SJIS;

Смотри так же:

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог