主题:怎么这个插入有问题
clever101
[专家分:1310] 发布于 2005-11-08 22:54:00
Score表有三个数据项:NO(表示学号),CNO(表示课程号),DEGREE(表示分数)。我设了NO,CNO两个主键。
先输入103,3-245,84,接着输入105,3-245,67就出错了。
错误提示说是插入重复键。
回复列表 (共7个回复)
沙发
cwb1128 [专家分:3120] 发布于 2005-11-09 08:09:00
不大可能啊,你看看你主键是不是设置错了,我怀疑你少了个。嘿嘿。
板凳
clever101 [专家分:1310] 发布于 2005-11-09 08:57:00
绝对没有错,
NO, CNO, DEGREE
103, 3-245, 84
105, 3-245, 67
你说这两个数据一样吗?
3 楼
clever101 [专家分:1310] 发布于 2005-11-09 15:43:00
我找到了自认正确的答案
开始建表我是在查询分析器建立:
create table Score
(NO int not null unique,
Cno char(10)not null unique,
Degree int);
后来我发现了unique有错误,于是把语句改成下面的就成功了:
create table Score
(NO int not null ,
Cno char(10)not null,
Degree int,
PRIMARY KEY (NO,Cno));
4 楼
glare001 [专家分:10] 发布于 2005-12-08 22:01:00
呵呵,你刚开始是建了两个单独的主键,当然有冲突了.后来改成一个联合主键就不会有问题了.
5 楼
loyalknight [专家分:290] 发布于 2005-12-09 23:02:00
楼上说法有问题,不存在所谓什么两个单独的主键.unique 只是给了该列一个唯一的属性而已,和主键没关系
6 楼
tuwei123 [专家分:30] 发布于 2005-12-14 04:38:00
主键不是不可以有重复吗!!~~
7 楼
clever101 [专家分:1310] 发布于 2005-12-14 10:01:00
关键在这一句:Cno char(10)not null unique,我设了Cno是唯一的,这跟它是不是主键没有关系。
我来回复