Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Изменение определения домена




Примеры определений доменов

В дальнейших примерах нам понадобятся определения нескольких доменов. Приведем их в этом подразделе. В примерах мы будем иметь дело с таблицами служащих (EMP), отделов (DEPT) и проектов (PRO). Каждый служащий обладает уникальным номером (EMP_NO) и получает заработную плату (SALARY). Определим домены EMP_NO и SALARY.

 

CREATE DOMAIN EMP_NO AS INTEGER

CHECK (VALUE BETWEEN 1 AND 10000);

 

Номера служащих являются целыми числами, поэтому базовым типом домена EMP_NO является тип INTEGER. Кроме того, на значения этого домена устанавливается то ограничение, что они должны быть больше нуля и не превосходить целое значение 10000.

 

Домен SALARY определим следующим образом:

 

CREATE DOMAIN SALARY AS NUMERIC (7, 2)

DEFAULT 10000.00

CHECK (VALUE BETWEEN 10000.00 AND 20000000.00)

CONSTRAINT SAL_NOT_NULL CHECK (VALUE IS NOT NULL);

 

Размер заработной платы является значением точного числового типа NUMERIC из семи десятичных цифр, две из которых составляют дробную часть. По умолчанию размер заработной платы составляет 10000 руб. Установлен диапазон допустимого размера зарплаты от 10000 руб. до 20000000 руб. Неопределенное значение зарплаты не допускается (на уровне определения домена).

 

 

Для изменения характеристик ранее определенного домена используется оператор SQL ALTER DOMAIN. Синтаксис этого оператора выглядит следующим образом:

 

domain_alternation::=
ALTER DOMAIN domain_name domain_alternation_action

 

domain_alternation_action::=

domain_default_alternation_action
| domain_constraint_alternation_action

 

Как видно из синтаксических правил, при изменении определения домена можно выполнить действие по изменению раздела значения по умолчанию либо изменить ограничения домена. Для первого варианта действует следующий синтаксис:

 

domain_default_alternation_action::=
SET default_definition
| DROP DEFAULT

 

В случае установки нового значения по умолчанию (SET) это значение автоматически применяется ко всем столбцам, определенным на данном домене. Более точно, во всех строках всех таблиц установленное по умолчанию значение всех столбцов, которые были определены на данном домене, меняется на новое значение по умолчанию (если только при определении столбца не было явно указано его собственное значение по умолчанию). В случае отмены раздела значения по умолчанию в определении домена (DROP) упоминание о значении по умолчанию убирается из хранимых определений всех столбцов, которые были определены на данном домене (если только при определении столбца не было явно указано его собственное значение по умолчанию).

 

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

 

domain_constraint_alternation_action::=

ADD domain_constraint_definition

| DROP CONSTRAINT constraint

 

Действие по добавлению нового определения ограничения домена (ADD) приводит к тому, что новое условие добавляется через AND к существующему ограничению домена. Если к моменту выполнения соответствующего оператора ALTER DOMAIN существуют столбцы некоторых таблиц, текущие значения которых противоречат новому ограничению, то СУБД должна отвергнуть этот оператор ALTER DOMAIN. Действие по отмене ограничения домена (DROP) приводит к исчезновению соответствующей части общего ограничения соответствующего домена, что, естетвенно, не влияет на существующие значения существующих столбцов существующих таблиц.

 




Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 246; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.