回 帖 发 新 帖 刷新版面

主题:怎么这个插入有问题

Score表有三个数据项:NO(表示学号),CNO(表示课程号),DEGREE(表示分数)。我设了NO,CNO两个主键。
  先输入103,3-245,84,接着输入105,3-245,67就出错了。
错误提示说是插入重复键。


回复列表 (共7个回复)

沙发

不大可能啊,你看看你主键是不是设置错了,我怀疑你少了个。嘿嘿。

板凳

绝对没有错,
NO, CNO, DEGREE
103, 3-245, 84
105, 3-245, 67
你说这两个数据一样吗?

3 楼

我找到了自认正确的答案
开始建表我是在查询分析器建立:

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 楼

呵呵,你刚开始是建了两个单独的主键,当然有冲突了.后来改成一个联合主键就不会有问题了.

5 楼

楼上说法有问题,不存在所谓什么两个单独的主键.unique 只是给了该列一个唯一的属性而已,和主键没关系

6 楼

主键不是不可以有重复吗!!~~

7 楼

关键在这一句:Cno char(10)not null unique,我设了Cno是唯一的,这跟它是不是主键没有关系。

我来回复

您尚未登录,请登录后再回复。点此登录或注册