我有点困惑:
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个单独的列?我是对的吗?
答案 0 :(得分:0)
只能有一个主键,而可以有多个唯一键。主键是一系列唯一键的子集,并且对它有进一步的限制,例如不能为空。仍然可以使用唯一键来唯一地识别记录。
答案 1 :(得分:0)
这里提到了不同之处。 difference between primary key and unique key
在SQL Server中添加它,默认情况下,主键创建聚簇索引,而唯一约束在列上创建非聚簇索引。如果需要,可以更改此默认行为。
答案 2 :(得分:-1)
主键约束和唯一键约束之间的最大差异是:
不允许主键约束保存NULL值。唯一键约束只能包含一个 空值。
多数民众赞成!