Reputation: 11
I just can't seem to figure out what is the problem with my foreign key part of the code? I have looked at other threads and can't seem to get it to work without an error. Any help would be awesome. Thanks.
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;
Upvotes: 1
Views: 32
Reputation: 4191
You cannot insert this:
insert into courseTable
(courseNo,courseName,semester,bookNumber,instructorNumber)
values
(101,"Programming1","Spring",100,500),
(102,"Intro to Networking","Fall",110,600);
Because you don't have "101","102"
in this table instructorTable(instructorNumber)
and bookTable(bookNumber)
;
Primary key table
must exists first before you insert the foreign key
record into "courseTable"
;
Upvotes: 1
Reputation: 31
You must run the instructorTable inserts before the courseTable ones
Upvotes: 1