2017-03-13 4 views
1

Ich kann einfach nicht herausfinden, was das Problem mit meinem Fremdschlüssel Teil des Codes ist? Ich habe mir andere Threads angeschaut und kann es anscheinend nicht ohne Fehler zum Laufen bringen. Jede Hilfe wäre großartig. Vielen Dank.MySQL 1452 Fehler. Ich kann nicht sehen, warum es nicht funktioniert. Fremdschlüssel

drop database db5; 
create database if not exists db5; 
use db5; 
create table if not exists bookTable( 
bookNumber integer not null primary key, 
bookName varchar(50), 
bookPrice decimal(5,2), 
coverType varchar(15) default"hardcover", 
publicationDate datetime); 

insert into bookTable 
(bookNumber,bookName,bookPrice,coverType,publicationDate) 
values 
(100,"Intro to Programming",145.99,"paperback",01/20/2009), 
(110,"Networking",135.95,"paperback",02/18/2015); 

create table if not exists instructorTable(
instructorNumber integer not null primary key, 
instructorName varchar(20), 
instructorPhone varchar (10), 
instructorOfficeNumber varchar(5)); 

create table if not exists courseTable(
courseNo integer not null primary key, 
courseName varchar(20), 
semester varchar(10), 
bookNumber integer not null, 
instructorNumber integer not null, 
foreign key(bookNumber) references bookTable(bookNumber), 
foreign key(instructorNumber) references instructorTable(instructorNumber)); 

insert into courseTable 
(courseNo,courseName,semester,bookNumber,instructorNumber) 
values 
(101,"Programming1","Spring",100,500), 
(102,"Intro to Networking","Fall",110,600); 

insert into instructorTable 
(instructorNumber,instructorName,instructorPhone,instructorOfficeNumber) 
values 
(500,"Tom Hart",5703235555,237), 
(600,"Jackie Knight",5703235566,245); 

use db5; 
select * 
from bookTable, courseTable, instructorTable; 

Antwort

1

Sie müssen die Einsätze Instructor vor den courseTable diejenigen laufen

1

Sie können dies nicht einfügen:

insert into courseTable 
(courseNo,courseName,semester,bookNumber,instructorNumber) 
values 
(101,"Programming1","Spring",100,500), 
(102,"Intro to Networking","Fall",110,600); 

Weil Sie nicht "101","102" in dieser Tabelle haben Sie instructorTable(instructorNumber) und bookTable(bookNumber);

Primary key table muss zuerst vorhanden sein, bevor Sie den foreign key Datensatz in "courseTable" einfügen;

Verwandte Themen