对于给定的表,如果我计算具有NOT NULL和UNIQUE的键(除了主键之外),这两个约束都会给我计算该表的辅助键吗?
如果没有,如何使用SQL查询获取表的二级密钥?
答案 0 :(得分:1)
是和否。正如您在自己的评论中所说,它为您提供了候选键(前提是它们有约束/索引)。
想象一下国家/地区表。您可以使用自然键(即国家/地区名称)作为其主键。那么你将拥有一个主键,而没有其他非null唯一索引。好的,到目前为止。
现在您在国家/地区表中添加ID。无论您决定将其用作主键还是保留自然键,您都将拥有一个主键和一个非null唯一索引。所以你找到了你的二级密钥。
但是,如果由于某种原因有人添加了另一个包含国家/地区名称和ID的索引,那么您将获得另一个非null唯一索引。但是,我不会考虑另一个二级密钥。它只是加速某些查找的另一个索引。
所以是的,您可以查找非空的唯一索引来查找辅助键,但是您没有完成它。您还必须检查这样找到的索引是否只是其他非null唯一索引的组合。摆脱这些,应该是它。