数据库中三大问题约束、CASE语句和文件

数据库中三大问题约束、CASE语句和文件

本文用实例方式讲述了关于约束、CASE语句和文件三大问题。

约束

“定义为可延迟(deferrable)”的约束可以指定为:

1.initiallyimmediate(初始化立即执行)或

2.initiallydeferred(初始化延迟执行)。

知道什么是延迟约束,但不明白什么叫“初始化立即执行的可延迟约束”和“初始化延迟执行的可延迟约束”。请解释二者的区别。还有,这些约束有什么用途?这是通常容易混淆的问题。我希望下面的例子能解释清楚。初始化立即执行/延迟执行规定了在默认情况下应该如何执行约束:

初始化立即执行:在每条语句执行结束时检验约束。

初始化延迟执行:直等到事务完成后(或者调用setconstraintimmediate语句时)才检验约束。

通过代码分析两者不同:

SQL>createtablet2(xintconstraintcheck_xcheck(x>0)deferrableinitiallyimmediate,3yintconstraintcheck_ycheck(y>0)deferrableinitiallydeferred4)5/Tablecreated.SQL>insertintotvalues(1,1);1rowcreated.SQL>commit;Commitcomplete.