sql >> Base de Datos >  >> RDS >> Mysql

Aparece un error en sql al intentar agregar varias claves externas

aquí he solucionado su problema y funcionó bien para mí

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

primero he cambiado el QuestionId a primary key

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

luego agregó el índice en QuestionId de image_question

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

y luego la primera relación para QuestionId funciona correctamente

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

luego cambió el tipo de datos de SessionId de ambas tablas a int

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

luego agregó el índice en SessionId de image_question

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

y aquí está su segunda relación para SessionId Espero que funcione bien para ti también