PRIMARY KEY 约束

表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。

一个表只能有一个 PRIMARY KEY 约束,并且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束可保证数据的唯一性,因此经常对标识列定义这种约束。

如果为表指定了 PRIMARY KEY 约束,则 数据库引擎将通过为主键列创建唯一索引来强制数据的唯一性。当在查询中使用主键时,此索引还可用来对数据进行快速访问。因此,所选的主键必须遵守创建唯一索引的规则。

如果对多列定义了 PRIMARY KEY 约束,则一列中的值可能会重复,但来自 PRIMARY KEY 约束定义中所有列的任何值组合必须唯一。

如下图所示,Purchasing.ProductVendor 表中的 ProductIDVendorID 列构成了针对此表的复合 PRIMARY KEY 约束。这确保了 ProductIDVendorID 的组合是唯一的。

组合 PRIMARY KEY 约束

当进行联接时,PRIMARY KEY 约束将一个表与另一个表关联。例如,若要确定哪些供应商供应哪些产品,可以在 Purchasing.Vendor 表、Production.Product 表和 Purchasing.ProductVendor 表之间使用一个三向联接。因为 ProductVendor 包含 ProductIDVendorID 列,所以可通过与 ProductVendor 的联系来访问 Product 表和 Vendor 表。