відкладається. Визначає, чи є обмеження відкладеними. oracle, postgresql, sqlite. спочатку відкладено. Визначає, чи спочатку відкладено обмеження.
Якщо обмеження є відкладеним, цей пункт вказує час за замовчуванням для перевірки обмеження. Якщо обмеження є INITIALLY IMMEDIATE, воно перевіряється після кожного оператора, що є типовим. Якщо обмеження СПОЧАТКОВО ВІДТРИМЛЕНО, воно перевіряється лише в кінці транзакції.
Ми слідуємо за ключовим словом DEFERRABLE або INITIALLY DEFERRED, або INITIALLY IMMEDIATE. У першому випадку перевірку буде відкладено безпосередньо перед фіксацією кожної транзакції. В останньому випадку перевірка буде проводитися відразу після кожної заяви.
INITIALLY IMMEDIATE означає, що обмеження перевіряється після оновлення кожного рядка окремо за замовчуванням. NOT DETERRABLE означає, що ми не можемо змінити цей параметр у транзакції.
Параметри DEFERRABLE і NOT DEFERRABLE вказати, чи можна в наступних транзакціях перевірку обмежень відкласти до кінця транзакції за допомогою оператора SET CONSTRAINT (S).. Якщо ви опустите це положення, то за умовчанням буде NOT DEFERRABLE.
У SQL Server Enterprise пошкоджена транзакція може стати відкладеною, якщо дані, необхідні для відкоту (скасування), знаходяться в автономному режимі під час запуску бази даних. Відстрочена операція є транзакція, яка не зафіксована після завершення фази відкоту, і яка зіткнулася з помилкою, яка перешкоджає її відкоту.