Ограничения запрашиваются в операторе создания таблицы и автоматически активизируются 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).
Ссылка на скачивание - внизу страницы.