Я прочитав це про ключове слово SQL DEFERRABLEу системі баз даних - Повна книга .
Останнє [NOT DEFERRABLE] за замовчуванням, і означає, що кожного разу, коли виконується оператор модифікації бази даних, обмеження перевіряється відразу після цього, якщо модифікація може порушити обмеження зовнішнього ключа.
Однак, якщо ми оголосимо обмеження РОЗШИРЕНИМ , тоді ми маємо можливість почекати, поки транзакція не завершиться, перед тим, як перевірити обмеження.
Ми слідуємо за ключове слово відкладаються або INITIALLY DEFERRED або INITIALLY IMMEDIATE . У першому випадку перевірка буде відкладена безпосередньо перед кожною транзакцією. В останньому випадку перевірка проводитиметься відразу після кожної заяви.
Чим NOT DEFERRABLEвідрізняється від DEFERRABLE INITIALLY IMMEDIATE? В обох випадках, схоже, будь-які обмеження перевіряються після кожного окремого твердження.

DEFERRABLEзаявляє про намір дизайнера про те, що відстрочка обмеження є корисною або необхідною дією. Це не стосується переважної більшості обмежень та маркування баз даних, оскільки цеDEFERRABLEможе втратити цю корисну відмінність.