Документация iSZN

04. Диалог ограничений целостности

Диалог ограничений целостности задачи SQL Worksheet

Краткий обзор

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

Интерфейс

Состояние Служит для выбора фильтра ограничений целостности по состоянию. В списке «Ограничения целостности» отображаются ограничения целостности, удовлетворяющие условию фильтра.
Таблица Служит для выбора фильтра ограничений целостности по имени таблицы. В списке «Ограничения целостности» отображаются ограничения целостности, относящиеся к выбранной таблице или всем таблицам.
Включить имя таблицы Если включено, то в списке «Ограничения целостности» в имена ограничений целостности включаются имена таблиц.
Ограничение целостности Служит для выбора ограничения целостности.
Совет: здесь, как и во всех выпадающих списках в iSZN, поддерживается поиск по подстроке. Таким образом, чтобы найти, например, элемент SYS_C006712, обычно достаточно набрать «6712» и нажать клавишу Enter (когда список активен).
Включить Служит для включения текущего ограничения целостности (предварительно запрашивается подтверждение и необходимость использования протоколирования при выполнении операции; см. ниже). Доступно, если текущее ограничение отключено. Аналог — сочетание клавиш Ctrl+1.
Отключить Служит для отключения текущего ограничения целостности (предварительно запрашивается подтверждение выполнения операции). Доступно, если текущее ограничение целостности включено. Аналог — сочетание клавиш Ctrl+0.
Описание Отображает описание текущего ограничения целостности. Поле только для чтения. Для каждого ограничения целостности отображаются:
• таблица, к которой оно относится;
• текст ограничения (команда, использованная для его создания);
• статус (ENABLED или DISABLED).

Протоколирование включения ограничения целостности

Перед включением ограничения целостности у пользователя запрашивается необходимость протоколировать процесс валидации (проверки соответствия записей данному ограничению).

Если пользователь отказался от протоколирования, то, в случае, когда в таблице имеются записи, не соответствующие ограничению целостности, возникает исключительная ситуация (exception) и выдаётся сообщение об ошибке. При этом пользователь должен самостоятельно искать записи, нарушившие условия ограничения.

Если же протоколирование включено, то идентификаторы сбойных строк таблицы (rowid) помещаются в специальную таблицу (temp$_exceptions) и впоследствии могут быть использованы, чтобы просмотреть или удалить эти строки. Более того, задача открывает новое окно SQL-редактора и помещает туда готовый запрос для выборки этих записей.

Внимание: чтобы протоколирование было возможно, необходимо, чтобы таблица temp$_exceptions существовала. Если она не существует, её можно создать следующей командой (команда должна выполняться пользователем, обладающим ролью «Системный администратор»):

call uszn.pkService.CreateExceptionsTable()

См. также