菜鸟问题:mysql 建表 外键问题

来源:百度知道 编辑:UC知道 时间:2024/04/25 18:27:37
主表的代码是这样写的
create table score(id varchar(20) not null,
xuenian varchar(20)not null,primary key(id,xuenian),
deyu varchar(20) null,
xuexi varchar(20) null,
zhiyu varchar(20) null,
tiyu varchar(20) null,
zhonghe varchar(20)null)

但是 再建个有外键参照score表的时候
create table kecheng(kcid varchar(20) not null primary key,
xuenian varchar(20) not null constraint fk foreign key(xuenian) references score(xuenian),
kecheng varchar(20) null
)
就会提示

服务器: 消息 1776,级别 16,状态 1,行 1
在被引用表 'score' 中没有与外键 'fk' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 1
未能创建约束。请参阅前面的错误信息。

要怎么办才好呢?

你要在score表里面定义xuenian为KEY,例如:

create table score(id varchar(20) not null,
xuenian varchar(20)not null,primary key(id,xuenian),
deyu varchar(20) null,
xuexi varchar(20) null,
zhiyu varchar(20) null,
tiyu varchar(20) null,
zhonghe varchar(20)null,
KEY (xuenian))

看说明!应该有

你要在score表里面定义xcreate table score(id varchar(20) not null,
xuenian varchar(20)not null,primary key(id,xuenian),
deyu varchar(20) null,
xuexi varchar(20) null,
zhiyu varchar(20) null,
tiyu varchar(20) null,
zhonghe varchar(20)null,
KEY (xuenian)) uenian为KEY,例如