SET CONSTRAINTS
SET CONSTRAINTS
Выбор режима проверки ограничений в текущей транзакции.
Синтаксис
SET CONSTRAINTS { ALL режим [.... ] }
{ DEFERRED | IMMEDIATE }
Параметры
- ALL. Ключевое слово ALL означает, что указанный режим должен относиться ко всем ограничениям в текущей транзакции.
- режим. Имя ограничения, для которого устанавливается режим проверки.
- DEFERRED. Проверка ограничений (или конкретного ограничения) откладывается до момента фиксации транзакции, то есть выполнения команды COMMIT.
- IMMEDIATE. Ограничения (или конкретное ограничение) проверяются в конце каждой команды в транзакционном блоке.
Результаты
- SET CONSTRAINTS. Сообщение выдается при успешном изменении режима проверки ограничений.
- ERROR: Constraint 'ограничение' does not exist. Ошибка — при попытке изменения режима проверки указано имя несуществующего ограничения.
Описание
Команда SET CONSTRAINTS задает режим проверки для всех ограничений или одного ограничения в текущем транзакционном блоке. Существует два режима проверки: немедленная (IMMEDIATE) и отложенная (DEFERRED) проверка ограничений. В режиме IMMEDIATE все ограничения проверяются после выполнения каждой команды транзакции, а в режиме DEFERRED ограничения проверяются лишь после выполнения команды COMMIT.
Примечание 1
Примечание 1
В PostgreSQL версии 7.1.x (последней на момент написания книги) изменение режима проверки поддерживается только для ограничения FOREIGN KEY. Команда SET CONSTRAINTS не распространяется на ограничения CHECK и UNIQUE.