延迟约束是在事务被提交时强制执行的约束.添加约束时可以通过Deferrable子句来指定约束为延迟约束.
约束一但创建以后, 就不能修改为Deferrable延迟约束.唯一办法: 删除该约束,只能在创建指定为延迟
约束即可.
1 --当前来指定上述创建的唯一约束为延迟约束 先删除已经创建唯一约束
2 --在创建中再次指定为延迟
3 alter table order_status
4 drop constraint order_status_uq
5 alert table order_status
6 add constraint order_status_uq unique (status) deferrable initially deferred;
注意上面再添加约束时. 可以将其标识为Initially Immediate 或Initially Deferred.
其中Initially Immediate意思是每次向表中添加数据,修改数据或是从表中删除数据时.
都要检查这个约束.(这与约束默认行为相同). 而Initially Deferred.意思是只有事务被提交时才检查这个约束.
上述我们指定的Deferred .即在只有事务提交时才检查该约束.
转载之:
http://space.itpub.net/17069315/viewspace-690067
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24111980/viewspace-1058311/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24111980/viewspace-1058311/