差异b / w约束...独特&约束......主要

时间:2014-05-18 09:14:48

标签: sql

我有点困惑:

CREATE TABLE suppliers
( supplier_id numeric(10) not null,
  supplier_name varchar2(50) not null,
  contact_name varchar2(50),
  CONSTRAINT suppliers_pk Unique (supplier_id,supplier_name)

);

insert into suppliers values(1,'farhan','sohail');
insert into suppliers values(1,'farhanAnsar','sohail');



CREATE TABLE supplier
( supplier_id numeric(10) not null,
  supplier_name varchar2(50) not null,
  contact_name varchar2(50),
  CONSTRAINT supplier_pk PRIMARY KEY (supplier_id,supplier_name)
);

insert into supplier values(1,'sname','cname');
insert into supplier values(1,'suppName','cname');

两者都很好。那么他们之间究竟有什么不同呢?

有人可以详细说明吗?

更多的事情:

一个表只能有一个主键。 2个或更多列的组合可用作主键,但主关键字不能用于2个单独的列?我是对的吗?

3 个答案:

答案 0 :(得分:0)

只能有一个主键,而可以有多个唯一键。主键是一系列唯一键的子集,并且对它有进一步的限制,例如不能为空。仍然可以使用唯一键来唯一地识别记录。

这里还有更多: difference between primary key and unique key

答案 1 :(得分:0)

这里提到了不同之处。 difference between primary key and unique key

在SQL Server中添加它,默认情况下,主键创建聚簇索引,而唯一约束在列上创建非聚簇索引。如果需要,可以更改此默认行为。

答案 2 :(得分:-1)

主键约束和唯一键约束之间的最大差异是:

  

不允许主键约束保存NULL值。唯一键约束只能包含一个   空值。

多数民众赞成!