在使用约束时(外键,唯一,为空等)可以使用enable /disable validate /novalidate
novalidate就是忽略已有数据,对之后的数据维护约束关系。
disable就是去掉约束。
deferrable 是在创建约束的时候使用,结合deferred,表示,在事务结束时再进行校验,而不是语句执行时即可校验,默认为initailly immediate。
deferrable 在定义索引的时候使用,这时可以不使用deferred,而在后面程序中,根据需要实时使用set constraint xxx deferred 来实现此功能。
虽然oracle实现了这些诡异的功能,但是个人感觉在以性能优先的环境中尽量不要使用,已减少开销。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11813230/viewspace-683380/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11813230/viewspace-683380/