Использование Предложения WITH CHECK OPTION
Можно убедиться, что операции DML, выполняемые на представлении, остаются в области представления при использовании предложения
WITH CHECK OPTION
:

Любая попытка сделать вставку строки посредством
INSERT
сdepartment_id
, отличным от 20, или сделатьUPDATE
для номера отдела любой строки в представлении не сработает, потому что это нарушает ограничениеWITH CHECK OPTION
.
Можно выполнить проверки ссылочной целостности через представления. Можно также вынудить проверку ограничений на уровне базы данных. Представление может использоваться, чтобы защитить целостность данных, но использование очень ограничено.
Предложение WITH CHECK OPTION определяет, что INSERT
-ы и UPDATE
-ы, выполняемые посредством представления, не могут создавать строки, которые представление не может выбрать. Поэтому, это позволяет ограничениям целостности и проверкам допустимости осуществляться на вставляемых или обновленных данных. Если происходит попытка выполнить операции DML на строках, которые не может выбрать представление, ошибка выводится на экран, наряду с именем ограничения, если оно было определено.
UPDATE empvu20 |
приводит к:

Отметьте: Никакие строки не обновляются, потому что, если бы номер отдела был изменен на 10, представление больше не было бы в состоянии увидеть этого сотрудника. С предложением WITH CHECK OPTION
, представление может увидеть только сотрудников в отделе 20 и не позволяет номеру отдела для этих сотрудников быть измененным посредством представления.