UNIQUE和PRIMARY 约束的区别
PRIMARY KEY 约束https://msdn.microsoft.com/zh-cn/library/ms191236.aspx表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。 一个表只能有一个 PRIMARY KEY 约束,并且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束可保证数据的唯一性,因此经常对标识列定义这种约束。 如果为表指定了 PRIMARY KEY 约束,则 数据库引擎将通过为主键列创建唯一索引来强制数据的唯一性。当在查询中使用主键时,此索引还可用来对数据进行快速访问。因此,所选的主键必须遵守创建唯一索引的规则。 如果对多列定义了 PRIMARY KEY 约束,则一列中的值可能会重复,但来自 PRIMARY KEY 约束定义中所有列的任何值组合必须唯一。 如下图所示,Purchasing.ProductVendor表中的ProductID和VendorID列构成了针对此表的复合 PRIMARY KEY 约束。这确保了ProductID和VendorID的组合是唯一的。 当进行联接时,PRIMARY KEY 约束将一个表与另一个表关联。例如,若要确定哪些供应商供应哪些产品,可以在Purchasing.Vendor表、Production.Product表和Purchasing.ProductVendor表之间使用一个三向联接。因为ProductVendor包含ProductID和VendorID列,所以可通过与ProductVendor的联系来访问Product表和Vendor表。 UNIQUE和PRIMARY 约束的区别http://www.cnblogs.com/hxsyl/archive/2012/12/24/2830500.html定义了UNIQUE约束的字段中不能包含重复值,可以为一个或多个字段定义UNIQUE约束,因此,UNIQUE即可以在字段级也可以在表级定义,在UNIQUE约束的字段上可以包含空值.ORACLE自动会为具有PRIMARY KEY约束的字段(主码字段)建立一个唯一索引和一个NOT NULL约束,定义PRIMARY KEY约束时可以为它的索引; UNIQUED 可空,可以在一个表里的一个或多个字段定义; PRIMARY KEY不可空不可重复,在一个表里可以定义联合主键;简单的说,primary key = unique + not null 不同点: (1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。 (4)建立主键的目的是让外键来引用. (5)一个表最多只有一个主键,但可以有很多唯一键 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |