无法添加外键约束,(#1215 - 无法添加外键约束)

时间:2015-09-03 10:49:17

标签: mysql sql database

我试图创建一个数据库,我的数据库中有一个表,想要添加另一个表。

我有这张桌子:

create table department(
    dept_name varchar(20),
    building varchar(20) not null,
    budget numeric(8,2),
    primary key (dept_name)
)

我要添加此表:

create table student (
    ID varchar(5),
    name varchar(20) not null,
    dept_name varchar(20),
    tot_cred numeric(3,0),
    primary key (ID),
    foreign key (dept_name) references department
)

但是我收到了这个错误:

#1215 - Cannot add foreign key constraint

你们可以帮我解决这个问题吗? 感谢。

1 个答案:

答案 0 :(得分:0)

你的第二张桌子应该是 -

create table student (
    ID varchar(5),
    name varchar(20) not null,
    dept_name varchar(20),
    tot_cred numeric(3,0),
    primary key (ID),
    foreign key (dept_name) references department(dept_name)
)

注意:最好在父表中包含dept_id作为int,并在第二个表中创建引用以获得更好的性能。

按照以下方式创建表格 -

create table department(
    dept_id int auto_increment,
    dept_name varchar(20),
    building varchar(20) not null,
    budget numeric(8,2),
    primary key (dept_id)
);

create table student (
    ID varchar(5),
    name varchar(20) not null,
    dept_it int,
    tot_cred numeric(3,0),
    primary key (ID),
    foreign key (dept_id) references department(dept_id)
)