DBMS Oracle中的约束

受限制的

我知道PostgreSQL中父表的子级会自动继承检查约束,但是我担心的是Oracle。

当您为父表中的一列实现CHECK约束时,是否也为子表的同一列(FK)实现了它们?

Codenheim

不,如果孩子在该列上使用FK(外键),则没有理由使用单独的CHECK,因为FK已将其约束为父级的值,而后者已在使用CHECK。

实际上,我建议不要在child实现CHECK,因为那是重复的逻辑。尽量不要重复完整性规则;如果您需要更改它们,则希望在一处进行更改。父级指定在这种类型的关系中哪些值是合法的(通常是合法的)。

CAVEAT:在实例化视图和查询重写选项的情况下,可能还需要在子项中包括检查约束。尽管我没有证据,但仍需调查。此外,尽管我假设统计分析器将从外键和父表获得足够的信息,但请参阅@JeffreyKemp注释以了解可能对优化器产生的影响。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章