sql >> Databáze >  >> RDS >> Mysql

Při pokusu o přidání více cizích klíčů se v SQL objeví chyba

zde jsem vyřešil váš problém a fungoval dobře pro mě

ALTER TABLE `question`     CHANGE `QuestionId` `QuestionId` INT(11) NOT NULL,    ADD PRIMARY KEY(`QuestionId`);

nejprve jsem změnil QuestionId na primary key

ALTER TABLE `image_question` ADD INDEX `questionId` (`QuestionId`);

pak přidal index na QuestionId z image_question

ALTER TABLE  `question` ADD CONSTRAINT `FK_question` FOREIGN KEY (`QuestionId`)
REFERENCES `image_question` (`QuestionId`) ON DELETE NO ACTION ;

a poté nejprve vztah pro QuestionId funguje úspěšně

ALTER TABLE `question`     CHANGE `SessionId` `SessionId` INT(11) NOT NULL;
ALTER TABLE `image_question`     CHANGE `SessionId` `SessionId` INT(11) NOT NULL;

poté změnil datový typ SessionId obou tabulek na int

ALTER TABLE `image_question` ADD INDEX `NewIndex1` (`SessionId`);

pak přidal index na SessionId z image_question

ALTER TABLE `image_question` ADD CONSTRAINT `FK_image_question` FOREIGN KEY (`SessionId`) REFERENCES `question` (`SessionId`) ON DELETE NO ACTION ;

a zde je váš druhý vztah pro SessionId doufám, že to bude fungovat dobře i vám




  1. SQLite rychlejší než MySQL?

  2. Vzdálené připojení MySQL v PHP

  3. Neplatná kombinace porovnávání (utf8_unicode_ci,IMPLICIT) a (utf8_general_ci,IMPLICIT) pro operaci '='

  4. Vícejazyčná pole v tabulkách DB