如题:
alter table e add constraint pk_e_empno primary key (empno) initially DEFERRED;
 initially DEFERRED是做什么的?

解决方案 »

  1.   

    deferrable:这个选项控制该约束推迟到事务的结尾。如果前面加not,就是相反的操作了。
    initially immediate:立即检查约束,在每条语句(结尾)检查约束,这是缺省值。相反,还有一个initially deferred。
    disable:禁止的意思。
    这些都是在执行SQL时的一些开关选项。
      

  2.   

    约束 “定义为可延迟(deferrable)”的约束可以指定为: 
    1. initially immediate(初始化立即执行)或 2. initially deferred(初始化延迟执行)。 
    知道什么是延迟约束,但不明白什么叫“初始化立即执行的可延迟约束”和“初始化延迟执行的可延迟约束”。请解释二者的区别。还有,这些约束有什么用途?这是通常容易混淆的问题。我希望下面的例子能解释清楚。初始化立即执行/延迟执行规定了在默认情况下应该如何执行约束: 
    初始化立即执行:在每条语句执行结束时检验约束。 
    初始化延迟执行:直等到事务完成后(或者调用set constraint immediate语句时)才检验约束。