Det är så att jag har börjat lära mig SQL och försöker ta mig an uppgifter på nätet men jag fastnat lite vid en specifik del av foreign keys i min kod.
Jag får "Cannot add foreign key constraint" hela tiden vid "create table klubba".
Jag fick liknande problem tidigare vid en tabell som jag fixade snabbt men hur jag en vrider och vänder på det hela återuppstår samma felmeddelande hela tiden. Vad har jag missat?
Jag vet att jag kanske har några småfel längre ner men jag har inte korrigerat dessa än.
Kod:
drop database nick; create database nick; use nick; create table person( pnr char(13), namn varchar(20), primary key(pnr) )engine=innodb; create table tävling( namn varchar(20), datum datetime, primary key(namn) )engine=innodb; create table domare( pnr char(13), namn varchar(20), lon int, primary key (pnr) )engine=innodb; create table domer( namn varchar(20), pnr char(13), primary key (namn, pnr), foreign key (pnr) references domare(pnr), foreign key (namn) references tävling(namn) )engine=innodb; create table spelare( pnr char(13), namn varchar(20), primary key (pnr) )engine=innodb; create table boll( signatur varchar(20), marke char(20), nr int(11), pnr char(13), primary key (signatur), foreign key (pnr) references spelare(pnr) )engine=innodb; create table caddy( pnr char(13), namn varchar(20), favorittips varchar(20), primary key (pnr) )engine=innodb; create table golfbag( marke varchar(20), typ varchar(20), pnr char(13), caddypnr char(13), primary key (pnr, marke), foreign key (pnr) references spelare(pnr), foreign key (caddypnr) references caddy(pnr) )engine=innodb; create table klubba( pnr char(13), marke varchar(20), namn varchar(20), kommentar varchar(20), primary key (pnr, marke, namn), foreign key (pnr) references spelare(pnr), foreign key (marke) references golfbag(marke) )engine=innodb; create table speltillfalle( starttid datetime, reslutat varchar(20), namn varchar(20), pnr char(13), primary key (starttid, namn, pnr), foreign key (namn) references tävling(namn), foreign key (pnr) references spelare(pnr) )engine=innodb; insert into tävling(namn, datum) values ('Sigges sommargolf', '2016-07-10'); insert into domare(pnr, namn, lon) values ('790129-4444', 'Simon', '12000'); insert into domare(pnr, namn, lon) values ('810912-5555', 'Sven', '12000'); insert into domare(pnr, namn, lon) values ('790612-1212', 'Eva', '12000'); insert into domare(pnr, namn, lon) values ('560201-1111', 'Jens', '12000'); insert into domare(pnr, namn, lon) values ('770202-3333', 'Karl', '12000'); insert into domer(namn, pnr) values ('Sigges sommargolf', '790129-4444'); insert into domer(namn, pnr) values ('Sigges sommargolf', '810912-5555'); insert into domer(namn, pnr) values ('Sigges sommargolf', '790612-1212'); insert into domer(namn, pnr) values ('Sigges sommargolf', '770202-3333'); insert into spelare(pnr, namn) values ('560123-6666', 'Bosse'); insert into spelare(pnr, namn) values ('790909-1111', 'Max'); insert into spelare(pnr, namn) values ('670808-2222', 'Sune'); insert into spelare(pnr, namn) values ('790101-4343', 'Benny'); insert into spelare(pnr, namn) values ('900820-1111', 'Stina'); insert into golfbag(marke, typ, pnr, caddypnr) values ('730303-1111', 'Nike', 'Tour', '560808-1111'); insert into klubba(pnr, marke, namn, kommentar) values ('730303-1111', 'Nike', 'Driver', 'Spikrak och kort'); insert into klubba(pnr, marke, namn, kommentar) values ('560808-1111', 'Nike', 'Driver', 'Längst och snedast på touren'); insert into klubba(pnr, marke, namn, kommentar) values ('900820-1111', 'Nike', 'Driver', 'Säkra bettan'); insert into caddy(pnr, namn, favorittips) values ('568602-1111', 'Anna', 'Knyt skorna hårdare'); insert into caddy(pnr, namn, favorittips) values ('560808-1111', 'Petra', 'Svinga lugnt'); insert into speltillfalle(starttid, resultat, namn, pnr) values ('2016-07-10 10:25:00', null, 'Sigges sommargolf', '560123-6666'); insert into speltillfalle(starttid, resultat, namn, pnr) values ('2016-07-10 13:10:00', 72, 'Sigges sommargolf', '670808-2222'); insert into speltillfalle(starttid, resultat, namn, pnr) values ('2016-07-10 12:05:00', 'Diskad', 'Sigges sommargolf', '900820-1111'); insert into speltillfalle(starttid, resultat, namn, pnr) values (null, 'Diskad', 'Sigges sommargolf', '790101-4343', null); insert into boll(signatur, marke, nr, pnr) values ('Hjärta', 'Titelist', null, '670808-2222'); insert into boll(signatur, marke, nr, pnr) values ('Tre prickar', null, null, '770202-3333');
Jag får "Cannot add foreign key constraint" hela tiden vid "create table klubba".
Jag fick liknande problem tidigare vid en tabell som jag fixade snabbt men hur jag en vrider och vänder på det hela återuppstår samma felmeddelande hela tiden. Vad har jag missat?
Jag vet att jag kanske har några småfel längre ner men jag har inte korrigerat dessa än.