我想知道SQL Server中唯一的键和复合的主键之间有什么区别。
根据w3c学校的说法:
唯一约束唯一地标识数据库表中的每个记录。 唯一键约束和主键约束都为列或列集的唯一性提供了保证。 主键约束自动定义为唯一约束。 请注意,每个表可以有许多唯一约束,但每个表只有一个主键约束。
我们可以使用以下方法创建复合主键:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)对于复合主键语法:
CREATE TABLE Persons
(
P_Id int,
C_Id int,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
Primary Key (P_Id,C_Id)
);发布于 2016-12-07 10:38:57
唯一约束唯一地标识数据库表中的每个记录。这为列或列集的唯一性提供了保证。我们可以用这个定义(点)一行。
主键在默认情况下具有唯一的约束。
在某些表中,没有任何具有唯一值的列来定义行。在这种情况下,使用复合键。在这种情况下,两个或多个列组合在一起,因此这种组合是唯一的。
发布于 2016-12-07 10:36:43
正如您自己说的,惟一键和主键之间的唯一区别是,表上可能只有一个主键,而它可以有更多唯一的键。
此外,主键的值可能不是null。
唯一键和主键都可以由多个列(组合键)组成。
通过这些方法,在您的示例中,P_Id列上有一个唯一的键,而包含该列的一个组合主键。
这毫无意义。
我建议只在该P_Id列上创建一个简单的主键。
发布于 2016-12-07 10:38:01
组合键由多个列组成。
主键可以防止具有相同键列值的表中的第二行。
主键可以由单个列和多个列组成。因此,主键也可以定义为复合键。
https://stackoverflow.com/questions/41015034
复制相似问题