create table Course(Id char(8),Num int,
Room_Num char(10), week char(10), Time int,
primary key (Id, Num));
上面是新建的Course表,Id是课程号,Num是课序号;我想在下面的表中设置外键约束,Course_Id是参照Course的Id的一个约束关系
create table Course_Limited(Course_Id char(8),
Limited_Grade char(5), Limited_Num int, Limited_Major char(20),
Credit float, Name char(20),
primary key (Course_Id));各位给帮帮忙!!
Room_Num char(10), week char(10), Time int,
primary key (Id, Num));
上面是新建的Course表,Id是课程号,Num是课序号;我想在下面的表中设置外键约束,Course_Id是参照Course的Id的一个约束关系
create table Course_Limited(Course_Id char(8),
Limited_Grade char(5), Limited_Num int, Limited_Major char(20),
Credit float, Name char(20),
primary key (Course_Id));各位给帮帮忙!!
Course表的Id虽然和num构成了联合primary key,但是id列不是primary key,id列可能会发生重复。所以肯定是建不成外键的。
Course_Id char(8),
Limited_Grade char(5), Limited_Num int, Limited_Major char(20),
Credit float, Name char(20),
primary key (Course_Id),
foreign key (Course_Id) references Course(id)
);
Limited_Grade char(5), Limited_Num int, Limited_Major char(20),
Credit float, Name char(20),
primary key (Course_Id)); alter table Course_Limited add constraints FK_Course_Limited2Course_ID foreign key(Course_Id) references Course(id);course表的(id)必须是primary key或者是unique key。==================================================================
Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
电子邮件:[email protected]
网站: http://www.inthirties.com
[/Quote]
6楼正解,在表course_limited中添加一个外键约束就OK了,不过这个约束名也太长了
如上:我有个疑问,外键说简单点就是为了使A中的主键Id出现的必须是test中Id出现的,对吧!
要是不对,谁帮忙解释给我一下!!!但是我提问就是Course中有两个属性作为主键,当我要做这个时:
alter table Course_Limited add constraints FK_Course_Limited2Course_ID foreign key(Course_Id) references Course(id);
出现以下提示:第 1 行出现错误:
ORA-02270: 此列列表的唯一或主键不匹配这是为什么??
就算是Course中的Id会有重复的,应该不会影响吧!!
谁来解释一下,
必须是Couese中的Id的范围之内吗??Id重复应该不会影响吧!!
不知道我对外键的理解对否!!
6楼正解,在表course_limited中添加一个外键约束就OK了,不过这个约束名也太长了
[/Quote]作为外键的references必须是primary key或者是unique key。
作为外键的references必须是primary key或者是unique key。不胜感激!!