复合主键

来源:互联网 发布:淘宝618活动 编辑:程序博客网 时间:2024/06/11 10:16
复合主键应该是一张表中,由几个字段来确定的唯一性,因为某几列的组合就能唯一确立一条记录,因此他们的组合为一张表的主键。
通常,一张表有一个主键字段,是唯一非空的。而复合主键是一张表由几个字段来定唯一性,即每条记录的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)
0 0