Я прочитал это о ключевом слове SQL DEFERRABLE
в системах баз данных - Полная книга.
Последний [NOT DEFERRABLE] по умолчанию и означает, что каждый раз, когда выполняется инструкция модификации базы данных, ограничение сразу же проверяется, если модификация может нарушить ограничение внешнего ключа.
Однако, если мы объявляем ограничение DEFERRABLE, то у нас есть возможность дождаться завершения транзакции до проверки ограничения.
Мы выполняем ключевое слово DEFERRABLE с помощью INITIALLY DEFERRED или INITIALLY IMMEDIATE. В первом случае проверка будет отложена непосредственно перед каждой транзакцией. В последнем случае проверка будет производиться сразу после каждого заявления.
Как NOT DEFERRABLE
отличается от DEFERRABLE INITIALLY IMMEDIATE
? В обоих случаях, кажется, любые ограничения проверяются после каждого отдельного оператора.