这个例子是采取来自 w3schools.
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
我的理解是两列在一起(P_Id
and LastName
) 表示表的主键Persons
。它是否正确?
- 为什么有人想要使用多个列作为主键而不是单个列?
- 给定表中可以有多少列一起用作主键?
你的理解是正确的。
在很多情况下你都会这样做。一个例子是在这样的关系中OrderHeader
and OrderDetail
。 PK中OrderHeader
可能OrderNumber
。 PK中OrderDetail
可能OrderNumber
AND LineNumber
。如果是这两者中的任何一个,它都不会是唯一的,但两者的组合保证是唯一的。
另一种方法是使用生成的(非智能)主键,例如在本例中OrderDetailId
。但这样你就不会总是那么容易地看到这种关系。有些人喜欢一种方式;有些人喜欢一种方式。有些人更喜欢另一种方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)