Mysql
 sql >> Database >  >> RDS >> Mysql

Viene visualizzato un errore in sql quando si tenta di aggiungere più chiavi esterne

qui ho risolto il tuo problema e ha funzionato bene per me

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

prima ho cambiato il QuestionId a primary key

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

quindi aggiunto l'indice su QuestionId di image_question

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

e poi la prima relazione per QuestionId funziona correttamente

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

quindi modificato il tipo di dati di SessionId di entrambe le tabelle su int

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

quindi aggiunto l'indice su SessionId di image_question

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

ed ecco la tua seconda relazione per SessionId spero che funzioni bene anche per te