19. december 2007 - 17:21
Der er
9 kommentarer og 1 løsning
Jeg får fejl 150 , når jeg opretter en fremmednøgle i min tabel
Hej med jer, Jeg har nu bakset i tre timer med det her problem, men kan bare ikke finde løsningen. Jeg har været side op og side ned, samt inde på mysql.com for at kigge, men lige lidt hjælper det. Er der en af jer der kan hjælpe mig? Jeg opretter følgende to tabeller: CREATE TABLE `bruger` ( `bruger_id` int(11) NOT NULL auto_increment, `brnavn` varchar(50) NOT NULL, PRIMARY KEY (`bruger_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE `score` ( `brugernavn` varchar(50) NOT NULL, `score_id` int(11) NOT NULL auto_increment, FOREIGN KEY (`brugernavn`) REFERENCES `bruger` (`brnavn`) ON DELETE CASCADE, PRIMARY KEY (`score_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Men jeg får til stadighed bare fejlen #1005 - Can't create table '.\lort\score.frm' (errno: 150) Er der nogen som kan hjælpe? På forhånd tak :)
Annonceindlæg fra Infor
19. december 2007 - 17:21
#1
Og jeg sidder med MySQL 5.0.18
20. december 2007 - 01:46
#2
prøv og tilføj et normalt index på bruger.brnavn
08. januar 2008 - 12:53
#3
Hej igen. Jeg beklager den lange svartid, men jeg kom til juletiden, og der var skiferie bagefter Det kan godt være jeg spørger dumt, men hvad mener du med et normalt index?
08. januar 2008 - 13:08
#4
Ah - altså noget i retningen af FOREIGN KEY (`brugernavn`) REFERENCES `bruger.bruger`
08. januar 2008 - 13:08
#5
øh jeg mente FOREIGN KEY (`brugernavn`) REFERENCES `bruger.brnavn`
08. januar 2008 - 15:07
#6
ja
15. januar 2008 - 12:49
#7
Jeg har rodet lidt videre med sagerne, men jeg får stadigvæk samme fejl: #1005 - Can't create table '.\vq_v2\score.frm' (errno: 150) SQL-koden jeg sætter ind, ser ud som følger CREATE TABLE `score` ( `score_id` int(11) NOT NULL auto_increment, `brugernavn` varchar(50) NOT NULL, FOREIGN KEY (`brugernavn`) REFERENCES `bruger.brnavn` ON DELETE CASCADE, PRIMARY KEY (`score_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Der kommer fejl, altså rødt kryds, i linjen med FOREIGN KEY (`brugernavn`) REFERENCES `bruger.brnavn` ON DELETE CASCADE,
15. januar 2008 - 14:02
#8
Jeg har rodet lidt videre med det, samt udvidet databasen, og er kommet til noget der virker fint: CREATE TABLE `bruger` ( `bruger_id` int(11) NOT NULL auto_increment, `email` varchar(100) NOT NULL, `brnavn` varchar(50) NOT NULL, `kodeord` varchar(50) NOT NULL, `postnr` int(11) NOT NULL, PRIMARY KEY (`bruger_id`), KEY `postnr` (`postnr`), KEY `idx_brnavn` (`brnavn`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; CREATE TABLE `postnr` ( `postnummer` int(11) NOT NULL, `bynavn` varchar(50) NOT NULL, PRIMARY KEY (`postnummer`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `score` ( `score_id` int(11) NOT NULL auto_increment, `brugernavn` varchar(50) NOT NULL, PRIMARY KEY (`score_id`), KEY `idx_score` (`brugernavn`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ALTER TABLE `bruger` ADD CONSTRAINT `bruger_ibfk_1` FOREIGN KEY (`postnr`) REFERENCES `postnr` (`postnummer`); ALTER TABLE `score` ADD CONSTRAINT `score_ibfk_1` FOREIGN KEY (`brugernavn`) REFERENCES `bruger` (`brnavn`) ON DELETE CASCADE; ---------------------------------------------------------- Såvidt jeg kan se, bør det virke uden problemer
15. januar 2008 - 14:05
#9
Er du flink at smide et svar Arne? Ideen om indeksering kom fra dig :)
16. januar 2008 - 01:38
#10
ok
Computerworld tilbyder specialiserede kurser i database-management