Oracle - 外键中的NULL?

发布于 2024-07-20 23:27:43 字数 192 浏览 4 评论 0原文

我正在尝试回答以下问题...

“解释当构成外键的列中存在 NULL 时出现的问题。讨论 ANSI 如何尝试通过可以采用的三个“匹配规则”来解决此问题使用串联外键时。”

谁能指出我这些“匹配规则”的正确方向? 我最初以为他们指的是 OUTER JOINS,但我不再确定了。

任何意见,将不胜感激。 谢谢。

I'm trying to answer the following question...

"Explain the issues that arise when NULLs are present in columns that make up foreign keys. Discuss how ANSI have attempted to resolve this issue with the three 'matching rules' that can be adopted when using concatenated foreign keys."

Can anyone point me in the right direction as to what these 'matching rules' are? I initially thought they were referring to OUTER JOINS, but I'm not sure anymore.

Any advice would be appreciated.
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

別甾虛僞 2024-07-27 23:27:43

如果我没记错的话,这些规则是关于复合外键的。 例如,考虑如下定义的地址表:

deliveryaddressid - order - orderline - street - ...

其中 (order,orderline) 是 orderline 表的外键。 匹配规则决定当外键的一部分为 NULL 时联接的行为方式。 例如,如下行:

32 - null - 1123 - 'Main Street 1' - ...

这是一篇关于部分外键的 文章(PDF下载,6页)相关部分似乎是:

ANSI SQL 92 许可和数据库等
因为Oracle支持替代匹配
复合外键的规则,
包括:

完全匹配 – 部分无效的外国内容
不允许使用钥匙。 要么全部
外键的组成部分必须是
null,或值的组合
外键中必须包含
显示为主键或唯一键
单行的值
参考表。 [默认]
部分匹配
– 部分零复合
允许使用外键。 要么全部
外键的组成部分必须是
null 或非 null 的组合
外键中包含的值
必须出现在相应的
主键或唯一键的一部分
中单行的值
参考表。
不匹配
部分为空的复合外键
是允许的。 如果a的任意一列
复合外键为空,则
键的非空部分
不必匹配任何相应的
父密钥的一部分。

If I remember right, these rules are about composite foreign keys. For example, consider an address table defined like:

deliveryaddressid - order - orderline - street - ...

Where (order,orderline) is a foreign key to the orderline table. The matching rules decide how joins behave when one part of the foreign key is NULL. For example, a row like:

32 - null - 1123 - 'Main Street 1' - ...

Here's an article about partial foreign keys (PDF download, 6 pages) The relevant part seems to be:

ANSI SQL 92 permits and databases such
as Oracle support alternative matching
rules for composite foreign keys,
including:

Match Full –Partially null foreign
keys are not permitted. Either all
components of the foreign key must be
null, or the combination of values
contained in the foreign key must
appear as the primary or unique key
value of a single row of the
referenced table. [Default]
Match Partial
– Partially null composite
foreign keys are permitted. Either all
components of the foreign key must be
null, or the combination of non-null
values contained in the foreign key
must appear in the corresponding
portion of the primary or unique key
value of a single row in the
referenced table.
Match None
Partially null composite foreign keys
are permitted. If any column of a
composite foreign key is null, then
the non-null portions of the key do
not have to match any corresponding
portion of a parent key.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文