Ограничения запрашиваются в операторе создания таблицы и автоматически активизируются DB2.
Ограничение:
- Ссылается только на столбцы этой же сторки
- максимальная длина - 3800.
- не может использовать подзапрос, скалярные функции и функции столбца, переменные, специальные регистры, столбы с FIELDPROC, количественные предикаты (SOME, ANY, ALL), операнд NOT.
- первым операндом каждого предиката должно быть имя столбца.
ALTERTABLE – соглашение о CHECK-ограничении
- Если таблица пустая, то CHECK-ограничение добавляется.
- Если таблица содержит данные, действие зависит от специального регистра CURRENT RULES ( STD|DB2)
- Для STD
· Если нет нарушающих условие строк, ограничение добавляется.
· Если есть такие строки, ALTER заканчивается неудачей.
- Для DB2 – устанавливается состояние check pending (CHKP)
Значение специального регистра CURRENT RULES устанавливается изначально параметром SQLRULES в BIND. Значение специального регистра может быть изменено с помощью оператора SET CURRENT RULES.
По отношению к таблице в check pending-состоянии не может быть выполнен ни один из SQL-операторов группы DML.
ALTERTABLE – пример CHECK-ограничения
Добавление/удаление CHECK-ограничения.
ALTER TABLE EMP
ADD CONSTRAINT SALCHECK
CHECK(SALARY>0)
ALTER TABLE EMP
DROP CONSTRAINT SALCHECK
ALTER TABLE EMP
DROP CHECK SEXCHECK
После использования оператора ALTER не требуется REBIND.
CHECK-ограничения - Информация в каталоге
Две таблицы каталога содержат описания и информацию о зависимостях для CHECK-ограничении. SYSIBM.SYSCHECKS содержит текст каждого CHECK-ограничения. SYSIBM.SYSCHECKDEP содержит информацию о зависимостях CHECK-ограничений.
CREATE TABLE – AUDIT/RESTRICT ON DROP
- препятствует удалению таблицы. Не может быть также удалена база данных и табличное пространство, содержащее эту таблицу.
- в столбец CLUSTERTYPE таблицы SYSIBM.SYSTABLES помещается информация об ограничении.
- ограничение на удаление таблицы может быть отменено с помощью оператора ALTER.
Создание таблицы по образу другой таблицы
Создание таблицы может требовать большого ввода. Если другая таблица существует с идентичными столбцами, Вы можете скопировать описания столбцов этой таблицы с помощью оператора CREATE TABLE LIKE.
· Столбцы имеют идентичные:
- Имена
- Типы данных и их длину
- NULL-атрибуты.
· Информация базы данных и табличного пространства НЕ копируется.
· CHECK-ограничения НЕ копируются.
Таблица – Информация в каталоге
Все таблицы DB2, включая таблицы каталога, описаны в таблице DB2 SYSIBM.SYSTABLES. Эта таблица может быть только просмотрена. Модификация ее запрещена. Только пользователю с правами SYSADM позволено модифицировать некоторые столбцы.
CREATETABLE – выходы пользователя
Столбцы – Информация в каталоге
SYSIBM.SYSCOLUMNS
NAME |
TBNAME |
TBCREATOR |
COLNO |
COLTYPE |
LENGTH |
SCALE |
NULLS |
DEFAULT |
… |
EMPNO |
EMP |
BART |
1 |
CHAR |
6 |
0 |
N |
N |
|
… |
SYSIBM.SYSFIELDS
TBCREATOR |
TBNAME |
NAME |
COLNO |
FLDPROC |
PARMLIST |
… |
BART |
EMP |
EMPNO |
1 |
prog1 |
N |
|
… |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.