Расширенные возможности поддержки ссылочной целостности с помощью внешнего ключа
Расширенные возможности поддержки ссылочной целостности с помощью внешнего ключа
Обычно вполне достаточно декларативного варианта ограничения внешнего ключа, при котором сервер только следит за тем, чтобы в таблицу с внешним ключом нельзя было вставить некорректные значения или - при попытке сделать это возникает ошибка. Но InterBase позволяет выполнять ряд автоматических действий при изменении/удалении внешнего ключа. Для этого служит следующий набор опций внешнего ключа:
[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[ON UPDATE {NO ACTIONjCASCADEjSET DEFAULT]SET NULL}]
Эти опции позволяют определить различные действия при изменении или удалении значения внешнего ключа.
Например, мы можем указать, что при удалении первичного ключа в таблице-мастере необходимо удалять все записи с таким же внешним ключом в подчиненной таблице. Для этого следует так определить внешний ключ:
ALTER TABLE INVENTORY
ADD CONSTRAINT fkautodel
FOREIGN KEY (FK_TITLE) REFERENCES TITLE(ID_TITLE)
ON DELETE CASCADE
Фактически для реализации этих действий создается системный триггер, который и выполняет определенные действия. В табл. 1.2 приведено описание происходящих действий при различных опциях (обратите внимание, что опции NO ACTION|CASCADE|SET DEFAULT|SET NULL не могут использоваться совместно в одном предложении ON XXX).
Событие
Действие
NO ACTION
CASCADE
SET DEFAULT
SET NULL
ON DELETE
При удалении внешнего ключа ничего не делать - используется по умолчанию
При удалении удалить все связанные записи из подчиненной таблицы
При изменении установить поле внешнего ключа в значение по умолчанию
При изменении установить поле внешнего ключа в NULL
ON UPDATE
При изменении ничего не делать - используется по умолчанию
При изменении записи изменить во всех связанных записях в подчиненных таблицах
При удалении установить поле внешнего ключа в значение по умолчанию
При удалении установить поле внешнего ключа в NULL
Если мы ничего не указываем или указываем NO ACTION, то необходимо позаботиться об изменении внешнего ключа (в случае изменения первичного) самостоятельно, а при удалении первичного ключа предварительно удалить записи из подчиненной таблицы.
Осторожно надо обращаться с опцией CASCADE: неосторожное ее использование может привести к удалению большого количества связанных записей.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 7 Расширенные возможности программы Skype
Глава 7 Расширенные возможности программы Skype
Другие возможности Центра справки и поддержки
Другие возможности Центра справки и поддержки hcp://system/netdiag/dglogs.htmВызвать окно диагностики сети. Из него вы сможете настроить саму функцию диагностики, а также собрать информацию о сети, сетевых компонентах компьютера (модем, сетевая карта и т.д.), а также о версии Windows и
1.3.2. Расширенные возможности поиска
1.3.2. Расширенные возможности поиска Для того чтобы использовать расширенные возможности, перейдите по ссылке расширенный поиск, находящейся под строкой ввода запроса. Вы попадете на новую страницу, где, помимо поля ввода запроса, размещены поля для формирования сложных
3. Расширенные возможности для пользователей
3. Расширенные возможности для пользователей Windows XP позволяет более гибко модифицировать свой интерфейс, чем это имело место в предшествующих версиях операционной системы Windows. При этом вы можете не только работать с новым интерфейсом Windows XP, но и с большим числом функций
Расширенные возможности системы
Расширенные возможности системы Скромный размер нашего первого порта и его достаточная простота не позволила нам рассмотреть все возможности системы портов. В этом опять же проявляется ее достоинство — не нужно знать много для построения сравнительно простого порта.
Обеспечение ссылочной целостности с помощью индексов
Обеспечение ссылочной целостности с помощью индексов В определении индекса имеется еще одна опция - UNIQUE. Если ее указать, то индекс позволит заносить в таблицу только уникальные значения. Фактически это служит основой для реализации уникальных ключей (UNIQUffi KEY).
Использование NULL в полях внешнего ключа
Использование NULL в полях внешнего ключа В полях, на основе которых создается внешний ключ, допускается применение NULL-полей. Эта возможность добавлена для разрешения взаимных ссылок. Например, еспи есть две таблицы, ссылающиеся друг на друга с помощью внешних ключей Ьсли
Расширенные возможности указания пользовательских планов
Расширенные возможности указания пользовательских планов Не всегда встроенный оптимизатор может выбрать оптимальный план. Причиной этого может быть отсутствие подробной статистики по индексам и полям, без которой трудно оценить стоимость выполнения варианта или
Использование ссылочной целостности для поддержания непротиворечивости данных
Использование ссылочной целостности для поддержания непротиворечивости данных Когда таблицы связаны между собой посредством отношений, данные в каждой из связанных таблиц должны оставаться согласованными друг с другом. Ссылочная целостность справляется с этой
Назначение внешнего ключа
Назначение внешнего ключа Для того чтобы назначить поле в качестве внешнего ключа, используйте ограничение FOREIGN KEY. Например, в структуре нашей базы данных существует отношение типа один-ко-многим между полем State таблицы tblRegion и соответствующим полем State таблицы tblCustomer.
Расширенные возможности многократного использования программного кода
Расширенные возможности многократного использования программного кода При построений консольных приложений в предыдущих главах могло показаться, что в создаваемом вами выполняемом компоновочном блоке содержатся все функциональные возможности соответствующего
4. Ограничения ссылочной целостности
4. Ограничения ссылочной целостности Итак, ограничение уровня баз данных включает ограничение ссылочной целостности внешних ключей (foreign key). Коротко мы уже упоминали об этом, когда говорили об ограничениях ссылочной целостности при создании базового отношения и внешних
Предложения действия ссылочной целостности
Предложения действия ссылочной целостности Триггеры ссылочной целостности являются модулями компилированного кода, создаваемыми ядром сервера, когда вы объявляете ограничение ссылочной целостности для ваших таблиц. Включив предложения действия ON UPDATE и ON DELETE В