对于一个字段设置的主键,每个表确实只能有一个主键,但是可以设置多个字段组成的主键,即联合主键,示例如下,
1、创建测试表,create table test_pkey(companyid number, userid number, username varchar2(200));
2、创建主键语句,
-- Create/Recreate primary, unique and foreign key constraints
alter table TEST_PKEY
add constraint pk1 primary key (COMPANYID);
alter table TEST_PKEY
add constraint pk2 primary key (USERID);
这时候会发现sql报错,信息如下:ORA-02260: 表只能具有一个主键,即,每个表只有一个主键,
3、修改
alter table TEST_PKEY
add constraint pk2 primary key (COMPANYID, USERID);
4、重新查看该表的主键,是由多个字段组成,
select a.constraint_name, a.column_name
from user_cons_columns a, user_constraints b
where a.constraint_name = b.constraint_name
and b.constraint_type = 'P'
and a.table_name = 'TEST_PKEY',