NOT DEFERRABLE по сравнению с DEFERRABLE INITIALLY IMMEDIATE

Я читал это о ключевом слове SQL DEFERRABLE в Database Systems - The Complete Book .

последнее [НЕ ОТЛОЖЕНО] по умолчанию и означает, что каждый раз, когда выполняется оператор модификации базы данных, ограничение проверяется сразу же после этого, если модификация может нарушить ограничение внешнего ключа.

Однако, если мы объявляем ограничение как DEFERRABLE , тогда у нас есть возможность заставить его ждать завершения транзакции перед проверкой ограничения.

Мы следуем ключевому слову DEFERRABLE либо ПЕРВОНАЧАЛЬНО ОТЛОЖЕНО или ПЕРВОНАЧАЛЬНО НЕМЕДЛЕННО . В первом случае, проверка будет отложена до момента фиксации каждой транзакции. В последнем случае проверка будет производиться сразу после каждого оператора.

Чем НЕ ОТЛОЖЕННЫЙ отличается от ОТЛОЖЕННЫЙ НАЧАЛЬНО НЕМЕДЛЕННЫЙ ? В обоих случаях, похоже, любые ограничения проверяются после каждого отдельного оператора.

78
задан Pieter 14 March 2011 в 14:56
поделиться