Иерархия видов ограничений целостности в SQL
В стандарте SQL дополнительные ограничения базы данных называются ASSERTION, т.е. общие ограничения целостности (ограничения БД).
Для определения общего ограничения целостности служит оператор CREATE ASSERTION, задаваемый в следующем синтаксисе:
CREATE ASSERTION constraint_name CHECK (conditional_expression)
Пример:
CREATE ASSERTION MIN_EMP_BDATE CHECK ((SELECT MIN(EMP_BDATE)) FROM EMP) >= '1917-10-24')
В контексте каждой выполняемой транзакции каждое ограничение целостности должно находиться в одном из двух режимов:
1) немедленной проверки (immediate): проверяются при выполнении в транзакции любой операции, изменяющей состояние базы данных, и, возможно ROLLBACK,
2) отложенной проверки (deferred): проверяются при завершении транзакции (выполнении операции COMMIT).
спецификация INITIALLY для ограничения целостности (любого вида):
INITIALLY { DEFERRED | IMMEDIATE } [ [ NOT ] DEFERRABLE ]
Подробнее:
INITIALLY IMMEDIATE - в режиме немедленной проверки,
INITIALLY DEFERRED – находиться в режиме отложенной проверки, а также DEFERRABLE - для данного ограничения м б установлен режим отложенной проверки, NOT DEFERRABLE – что не может,
INITIALLY DEFERRED NOT DEFERRABLE является недопустимой возможности смены режима подразумевается наличие спецификации DEFERRABLE.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | Поиск по сайту:
|