我正在阅读有关主键的信息,并且在许多教程,技术博客等中,我发现主键可以为null的答案。我认为这是完全错误的,因为我能够在列中插入空值。我想仅当该列声明为非null时,主键才能具有非null值。但这又不是主键的功能。
我的另一个问题是为什么我们有主键的概念,因为我发现主键和唯一键之间只有一个区别是“主键只能在一个列上声明而唯一键可以在多列上声明”。所以我的理解是,如果我们没有其他区别,为什么我们也不能将主键声明为唯一键。
我想只有在列被声明为非null的情况下,主键才能具有不为null的值,但这又不是主键的功能。
主键不能为空值。根据主键的定义,它是UNIQUE和NOT NULL。
我的另一个问题是为什么我们有主键的概念,因为我发现主键和唯一键之间只有一个区别是“主键只能在一个列上声明而唯一键可以在多列上声明”
这是完全错误的。您也可以在多列上创建主键,主键和唯一键之间的区别是主键不为空,唯一键可以具有空值。
主键的主要目的是识别行的唯一性,其中唯一键是为了防止重复,以下是主键和唯一键之间的主要区别。
首要的关键 :
NOT NULL
。CLUSTERED
默认情况下,主键导致唯一索引。唯一键:
一个表上可以定义多个唯一键。
NONCLUSTERED
默认情况下,唯一键会导致唯一索引。
一列或多列构成唯一键。
列可以是NULL
,但NULL
每列允许一个。
唯一约束可以由引用Foreign Key Constraint
。
我建议您阅读此主键和唯一键
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句