Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие / Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 104]

Предложение MATCH игнорируется, если все столбцы внешнего ключа имеют ограничения NOT NULL.
Предложения ON UPDATE и ON DELETE.
Предложения ON UPDATE и ON DELETE определяют действия, исполняемые по ссылке.
Действия, исполняемые по ссылке, в основном описаны выше в этой главе.
Сложности в понимании того, как выполняются эти действия, возникают если установлено MATCH PARTIAL и колонки, входящие в состав внешнего ключа, допускают NULL-значения.
Подробно эти действия с учетом возможных сложностей описаны в
[81].
Атрибуты ограничения.
Атрибуты ограничения определяют, в какой момент проверяются ограничения.
Ограничение может быть определено как NOT DEFERRABLE (неоткладывае.мое) или DEFERRABLE (откладываемое).
Если атрибуты ограничения не указаны, то по умолчанию принимается NOT DEFERRABLE.
Если ограничение определено как NOT DEFERRABLE (неоткладываемое), то ограничение всегда проверяется сразу после выполнения каждого оператора INSERT, UPDATE или DELETE, которые могут привести к нарушению ограничения.
Если ограничение определено как DEFERRABLE (откладываемое), то ограничение может иметь два режима проверки немедленно после выполнения операции или в конце транзакции.
Режим проверки может быть изменен в любой момент внутри транзакции командой SET CONSTRAINTS.
При определении ограничения можно указать начальный режим проверки INITIALLY DEFERRED (начально отложенное) или INITIALLY IMMEDIATE (начально немедленно проверяемое).

2.1.14 Синтаксис операторов SQL, использующих ограничения Стандарт SQL описывает следующие операторы, в которых может быть использованы ограничения [44, 71]: • CREATE DOMAIN создать домен.
[стр. 146]

5 строка не допустима.
Предложение MATCH игнорируется, если все столбцы внешнего ключа имеют ограничения NOT NULL.
Предложения ON UPDATE и ON DELETE.
Предложения ON UPDATE и ON DELETE определяют действия, исполняемые по ссылке.
Действия, исполняемые по ссылке, в основном описаны выше в этой главе.
Сложности в понимании того, как выполняются эти действия, возникают если установлено MATCH PARTIAL и колонки, входящие в состав внешнего ключа, допускают NULL-значения.
Подробно эти действия с учетом возможных сложностей описаны в
[9].
Атрибуты ограничения.
Атрибуты ограничения определяют, в какой момент проверяются ограничения.
Ограничение может быть определено как NOT DEFERRABLE (неоткладываемое) или DEFERRABLE (откладываемое).
Если атрибуты ограничения не указаны, то по умолчанию принимается NOT DEFERRABLE.
Если ограничение определено как NOT DEFERRABLE (неоткладываемое), то ограничение всегда проверяется сразу после выполнения каждого оператора INSERT, UPDATE или DELETE, которые могут привести к нарушению ограничения.
Если ограничение определено как DEFERRABLE (откладываемое), то ограничение может иметь два режима проверки немедленно после выполнения операции или в конце транзакции.
Режим проверки может быть изменен в любой момент внутри транзакции командой SET CONSTRAINTS.
При определении ограничения можно указать начальный режим проверки INITIALLY DEFERRED (начально отложенное) или INITIALLY IMMEDIATE (начально немедленно проверяемое).

Синтаксис операторов SQL, использующих ограничения Стандарт SQL описывает следующие операторы, в которых может быть использованы ограничения:
 CREATE DOMAIN создать домен  ALTER DOMAIN изменить домен  DROP DOMAIN удалить домен  CREATE TABLE создать таблицу  ALTER TABLE изменить таблицу  DROP TABLE удалить таблицу  CREATE ASSERTION создать утверждение  DROP ASSERTION удалить утверждение  COMMIT WORK зафиксировать транзакцию  SET CONSTRAINTS установить момент проверки ограничений CREATE DOMAIN Имя домена [AS] Тип данных [DEFAULT Значение по умолчанию] [Имя ограничения] Ограничение check [Атрибуты ограничения] Этот оператор задает домен, на основе которого можно определять колонки таблиц.
Т.к.
имя колонки, которая будет основана на этом домене заранее неизвестно, то в ограничении CHECK домена для ссылки на значение этого домена используется ключевое слово VALUE.
В конкретной таблице СУБД заменит слово VALUE на имя колонки таблицы.

[Back]