sql中规定每个表都应该有一个主键,并且每个表只能有一个主键,即PRIMARY KEY 约束

如题所述

第1个回答  2022-11-16

对于一个字段设置的主键,每个表确实只能有一个主键,但是可以设置多个字段组成的主键,即联合主键,示例如下,

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',

相似回答