各位我有个很基础的概念分不清

以下两条命令创建的表在查询性能上会有什么不同吗?
create table mytable (a1 char(10) PRIMARY KEY clustered)
create table mytable (a1 char(10) UNIQUE clustered)
---------------------------------------------------------------

建表后其实都要在该字段上建立索引的。所以性能是差不多的。关于差别你看看PRIMARY KEY 的定义吧!我认为主要还是逻辑设计上的不同。
---------------------------------------------------------------

有必要!
尽管 UNIQUE 约束和 PRIMARY KEY约束都强制唯一性,但在强制下面的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束:

非主键的一列或列组合。
一个表可以定义多个 UNIQUE 约束,而只能定义一个 PRIMARY KEY 约束。

允许空值的列。
允许空值的列上可以定义 UNIQUE 约束,而不能定义 PRIMARY KEY 约束。

有时候,仅仅一个主键约束是不能够保证数据的完整性的,因为需要约束的可能不仅仅是主键列

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus