Lok*_*ddy 1 primary-key dbms unique-constraint
我的工作
主键是唯一的,并且只有一个包含表。
表中可以包含许多唯一键。
在 SQL Server 中,主键不可为 Null。但是,唯一键可能只包含一个空值。
我的问题:
实际上,在 SQL Server 中,主键不可为空。但是从理论上讲,当它允许唯一键中的 Null 值时,为什么我们不能在主键中只有一个 Null 值呢?
谢谢回答我的问题
很抱歉问了一个一般性问题,在阅读了答案后,我对 DB 中的空值有了一个清晰的了解。
此外,我对 C++、Jave 等编程语言感到困惑,在这些语言中,空值可以进行比较。做了一些工作后,我明白Null 在SQL 中是没有可比性的。
在 C++、Java 等编程语言中...
Null==Null
Run Code Online (Sandbox Code Playgroud)
返回真
但是,在 SQL 中
Null==Null
Run Code Online (Sandbox Code Playgroud)
返回 FALSE,因为 Null 值是未知的,它可以是任何值。
作为键的一部分的任何属性都不能包含空值;如果一列可以为空,那么它不是任何键的一部分。同样的情况是由 UNIQUE 或 PRIMARY KEY 约束定义的列集不是键,除非它是最小超键并且也是不可为空的。
为什么键不能允许空值?有很多潜在的原因:
归档时间: |
|
查看次数: |
1063 次 |
最近记录: |