Документация iSZN
04. Диалог ограничений целостности
Краткий обзор
Данный диалог служит для просмотра свойств, а также включения и отключения ограничений целостности базы данных.
Интерфейс
Состояние | Служит для выбора фильтра ограничений целостности по состоянию. В списке «Ограничения целостности» отображаются ограничения целостности, удовлетворяющие условию фильтра. |
Таблица | Служит для выбора фильтра ограничений целостности по имени таблицы. В списке «Ограничения целостности» отображаются ограничения целостности, относящиеся к выбранной таблице или всем таблицам. |
Включить имя таблицы | Если включено, то в списке «Ограничения целостности» в имена ограничений целостности включаются имена таблиц. |
Ограничение целостности | Служит для выбора ограничения целостности. Совет: здесь, как и во всех выпадающих списках в iSZN, поддерживается поиск по подстроке. Таким образом, чтобы найти, например, элемент SYS_C006712 , обычно достаточно набрать «6712» и нажать клавишу Enter (когда список активен). |
Включить | Служит для включения текущего ограничения целостности (предварительно запрашивается подтверждение и необходимость использования протоколирования при выполнении операции; см. ниже). Доступно, если текущее ограничение отключено. Аналог — сочетание клавиш Ctrl+1. |
Отключить | Служит для отключения текущего ограничения целостности (предварительно запрашивается подтверждение выполнения операции). Доступно, если текущее ограничение целостности включено. Аналог — сочетание клавиш Ctrl+0. |
Описание | Отображает описание текущего ограничения целостности. Поле только для чтения. Для каждого ограничения целостности отображаются: • таблица, к которой оно относится; • текст ограничения (команда, использованная для его создания); • статус ( ENABLED или DISABLED ). |
Протоколирование включения ограничения целостности
Перед включением ограничения целостности у пользователя запрашивается необходимость протоколировать процесс валидации (проверки соответствия записей данному ограничению).
Если пользователь отказался от протоколирования, то, в случае, когда в таблице имеются записи, не соответствующие ограничению целостности, возникает исключительная ситуация (exception) и выдаётся сообщение об ошибке. При этом пользователь должен самостоятельно искать записи, нарушившие условия ограничения.
Если же протоколирование включено, то идентификаторы сбойных строк таблицы (rowid
) помещаются в специальную таблицу (temp$_exceptions
) и впоследствии могут быть использованы, чтобы просмотреть или удалить эти строки. Более того, задача открывает новое окно SQL-редактора и помещает туда готовый запрос для выборки этих записей.
Внимание: чтобы протоколирование было возможно, необходимо, чтобы таблица temp$_exceptions
существовала. Если она не существует, её можно создать следующей командой (команда должна выполняться пользователем, обладающим ролью «Системный администратор»):
call uszn.pkService.CreateExceptionsTable()