Jeg har lavet en foreign key mellem de to øverste tables via. 'teamid'. Nu vil jeg selvfølgelig gerne lave det samme på matchtable til teamid.a og teamid.b, men det bliver ved med at sige fejl. Først troede jeg det var pga. navnet, så slette jeg a og b, virkede ikke. Så prøvede jeg at linke fra playertable's teamid, istedet for teamtable's, virkede heller ikke.
Nogen der kan komme med inputs til hvad der er galt her? Jeg tænker det sikkert er ret simpelt for en der bare har en smule forstand på MySQL, hvilket jeg ikke har :P
ERROR 1822: Failed to add the foreign key constraint. Missing index for constraint 'teamid' in the referenced table 'teamtable'
Operation failed: There was an error while applying the SQL script to the database. Executing: ALTER TABLE `bttest`.`match` ADD INDEX `teamid_idx` (`teamid.a` ASC, `teamid.b` ASC) VISIBLE; ; ALTER TABLE `bttest`.`match` ADD CONSTRAINT `teamid` FOREIGN KEY (`teamid.a` , `teamid.b`) REFERENCES `bttest`.`teamtable` (`teamid` , `teamid`) ON DELETE NO ACTION ON UPDATE NO ACTION;
ERROR 1822: Failed to add the foreign key constraint. Missing index for constraint 'teamid' in the referenced table 'teamtable' SQL Statement: ALTER TABLE `bttest`.`match` ADD CONSTRAINT `teamid` FOREIGN KEY (`teamid.a` , `teamid.b`) REFERENCES `bttest`.`teamtable` (`teamid` , `teamid`) ON DELETE NO ACTION ON UPDATE NO ACTION
Som jeg forstår din løsning, så vil du have at jeg laver to connections via foreign key. Hvor jeg prøvede at lave (teamtable) teamid <> (matchtable) teamid.a & teamid.b
Så vil du have (teamtable) teamid <> (matchtable) teamid.a (teamtable) teamid <> (matchtable) teamid.b
Hvis det er forstået korrekt, så virkede det ikke. Jeg har nu også prøvet at ændre navn til teamid, så det er helt ens og KUN på den ene. Virker stadig ikke.
Operation failed: There was an error while applying the SQL script to the database. Executing: CREATE TABLE `bttest`.`match` ( `matchid` INT NOT NULL, `teamid` INT NULL, `teamid` INT NULL, PRIMARY KEY (`matchid`), INDEX `teamid_idx` (`teamid` ASC) VISIBLE, CONSTRAINT `teamid` FOREIGN KEY (`teamid`) REFERENCES `bttest`.`teamtable` (`teamid`) ON DELETE NO ACTION ON UPDATE NO ACTION);
ERROR 1060: Duplicate column name 'teamid' SQL Statement: CREATE TABLE `bttest`.`match` ( `matchid` INT NOT NULL, `teamid` INT NULL, `teamid` INT NULL, PRIMARY KEY (`matchid`), INDEX `teamid_idx` (`teamid` ASC) VISIBLE, CONSTRAINT `teamid` FOREIGN KEY (`teamid`) REFERENCES `bttest`.`teamtable` (`teamid`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.