[英]Error 1215, cannot add foreign key constraint
create database blood_bank;
use blood_bank;
create table Employee(
Emp_id integer not null,
Emp_name char(20) not null,
phone integer,
address char(20),
constraint primary key(Emp_id)
);
create table WorkInStorage(
Emp_id integer not null,
since date not null,
emp_salary integer,
constraint primary key(Emp_id),
constraint foreign key(Emp_id) references Employee(Emp_id) on delete cascade
);
create table Reports_To(
supervisor_id integer not null,
subordinate_id integer not null,
constraint primary key (supervisor_id,subordinate_id),
constraint foreign key(subordinate_id) references Employee(Emp_id),
constraint foreign key(supervisor_id) references Employee(Emp_id)
);
create table Nurse(
nurse_salary integer ,
Emp_id integer not null,
constraint primary key(Emp_id),
constraint foreign key(Emp_id) references Employee(Emp_id) on delete cascade
);
create table Receptionist(
Receptionist_salaray integer,
Emp_id integer not null,
constraint primary key(Emp_id),
constraint foreign key(Emp_id) references Employee(Emp_id) on delete cascade
);
create table donor(
donor_id integer not null,
donor_address char(20),
birthdate date,
donor_name char(20),
donor_gender char(5),
donor_phone integer,
Emp_id integer not null,
blood_id integer not null,
constraint primary key(donor_id),
constraint foreign key(Emp_id)references Nurse(Emp_id) on delete cascade ,
constraint foreign key(Emp_id)references Receptionist(Emp_id) on delete cascade ,
constraint foreign key(blood_id)references Blood(blood_id)on delete cascade
);
create table Checks(
isQualified boolean not null,
donor_id integer,
donor_address char(20),
birthdate date,
donor_name char(20),
donor_gender boolean,
donor_phone integer,
Emp_id integer not null,
constraint primary key(donor_id),
constraint foreign key(Emp_id) references Nurse(Emp_id)
);
當我嘗試執行此查詢時,它說它不能在donor
表中添加外鍵。
create table donor( donor_id integer not null, donor_address char(20), birthdate date, donor_name char(20), donor_gender char(5), donor_phone integer, Emp_id integer not null, blood_id integer not null, constraint primary key(donor_id), constraint foreign key(Emp_id)references Nurse(Emp_id) on delete cascade , constraint foreign key(Emp_id)references Receptionist(Emp_id) on delete cascade , constraint foreign key(blood_id)references Blood(blood_id)on delete cascade )
錯誤代碼:1215。無法添加外鍵約束
如果您要求在該數據庫不存在的地方運行該腳本,那么您將收到錯誤1215,因為您的表blood
不存在。
為了證明這一點,如果我執行
create table blood
( blood_id int auto_increment primary key
);
然后嘗試創建表donor
,它可以正常工作。
試試這個:
create table donor(
donor_id integer not null,
donor_address char(20),
birthdate date,
donor_name char(20),
donor_gender char(5),
donor_phone integer,
Emp_id integer not null,
blood_id integer not null,
primary key(donor_id,Emp_id,blood_id),
foreign key(Emp_id)references Nurse(Emp_id) on delete cascade,
foreign key(Emp_id)references Receptionist(Emp_id) on delete cascade,
foreign key(blood_id)references Blood(blood_id)on delete cascade)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.