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

但是下面又说如果需要命名PRIMARYKEY约束,以及为多个列定义PRIMARYKEY约束,请使用下面的SQL语法,,,,,,,到底怎么回事啊... 但是下面又说如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法,,,,,,,到底怎么回事啊 展开
 我来答
freechan10
2019-11-17 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.8万
展开全部

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

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

百度网友4efe45b
2014-04-18 · TA获得超过441个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:298万
展开全部
sql中规定每个表都应该有一个主键 --这是对的

并且每个表只能有一个主键,即PRIMARY KEY 约束 --这也是对的

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法,

PRIMARY KEY 约束 ,通俗讲就是主键,这一段的意思是,要创建一个主键。
这里的关键是,主键不一定是在一个列上的。比如一个表有10列,可以在第一, 第二 两个列上,创建主键。这种的主键叫做联合主键。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
twvampire
推荐于2017-10-09 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:2993万
展开全部

你说的不就是复合主键吗?

给你个简单的例子吧,,,


create table test(id int,cid int,
         pRIMARY KEY(id,cid))

意思,就是id和cid2个合起来不能重复

例如:

1、3

1、2

或者

2、1

3、1

这样的数据是可以的

但是

1、2

1、2

这样的数据插入就会提示主键重复

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝蓝的天空喔耶
2014-04-18
知道答主
回答量:5
采纳率:0%
帮助的人:6458
展开全部
一个表应该有一个主键,但也可以由多个主键,可以把多个列定义字段定义成主键
你可以表述更清楚点,你用的语句和问题给贴一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式