复合主键应该是一张表中,由几个字段来确定的唯一性,因为某几列的组合就能唯一确立一条记录,因此他们的组合为一张表的主键。
通常,一张表有一个主键字段,是唯一非空的。而复合主键是一张表由几个字段来定唯一性,即每条记录的col1和col2字段唯一。
怎么在已有表上设置复合主键?
例如:已有一个表test_key,其中a1列为主键。
create table TEST_KEY
(
a1 VARCHAR2(3) not null,
a2 VARCHAR2(3),
b1 VARCHAR2(3),
b2 VARCHAR2(3)
);
alter table TEST_KEY add constraint PK_TEST_KEY primary key (A1)
现在要将a2,b1也增加到主键中与原有的a1一起组成复合主键。语句如下:
alter table TEST_KEY drop constraint PK_TEST_KEY cascade;
alter table TEST_KEY add constraint PK_TEST_KEY primary key (A1, A2, B1)
通常,一张表有一个主键字段,是唯一非空的。而复合主键是一张表由几个字段来定唯一性,即每条记录的col1和col2字段唯一。
怎么在已有表上设置复合主键?
例如:已有一个表test_key,其中a1列为主键。
create table TEST_KEY
(
a1 VARCHAR2(3) not null,
a2 VARCHAR2(3),
b1 VARCHAR2(3),
b2 VARCHAR2(3)
);
alter table TEST_KEY add constraint PK_TEST_KEY primary key (A1)
现在要将a2,b1也增加到主键中与原有的a1一起组成复合主键。语句如下:
alter table TEST_KEY drop constraint PK_TEST_KEY cascade;
alter table TEST_KEY add constraint PK_TEST_KEY primary key (A1, A2, B1)