Oracle-外键中的空值?
我试图回答以下问题 “解释组成外键的列中出现空值时出现的问题。讨论ANSI如何尝试使用使用连接外键时可以采用的三个“匹配规则”来解决此问题。” 有人能给我指出这些“匹配规则”是什么吗?我最初以为它们指的是外部联接,但我现在不确定了 如有任何建议,将不胜感激。Oracle-外键中的空值?,oracle,null,ansi,Oracle,Null,Ansi,我试图回答以下问题 “解释组成外键的列中出现空值时出现的问题。讨论ANSI如何尝试使用使用连接外键时可以采用的三个“匹配规则”来解决此问题。” 有人能给我指出这些“匹配规则”是什么吗?我最初以为它们指的是外部联接,但我现在不确定了 如有任何建议,将不胜感激。 谢谢。如果我没记错的话,这些规则是关于复合外键的。例如,考虑定义如下的地址表: deliveryaddressid - order - orderline - street - ... 其中(order,orderline)是orderl
谢谢。如果我没记错的话,这些规则是关于复合外键的。例如,考虑定义如下的地址表:
deliveryaddressid - order - orderline - street - ...
其中(order,orderline)是orderline表的外键。当外键的一部分为NULL时,匹配规则决定联接的行为。例如,一行,如:
32 - null - 1123 - 'Main Street 1' - ...
这是一个(PDF下载,6页)相关部分似乎是:
ANSI SQL 92允许和支持以下数据库
因为Oracle支持替代匹配
复合外键的规则,
包括:
•完全匹配–部分为空
不允许使用钥匙。要么全部
外键的组件必须是
null,或值的组合
包含在外键中的
显示为主键或唯一键
表中单个行的值
参考表。[默认值]•匹配部分 –部分零合成 允许使用外键。要么全部 外键的组件必须是 null,或非null的组合 外键中包含的值 必须出现在相应的 主键或唯一键的一部分 表中单个行的值 参考表。
•匹配无—— 部分空复合外键 是允许的。如果 复合外键为null,则 密钥的非空部分不存在 不必匹配任何相应的 父密钥的一部分