sql >> データベース >  >> RDS >> Mysql

複数の外部キーを追加しようとすると、SQLにエラーが表示されます

    ここで私はあなたの問題を整理し、私のためにうまくいきました

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

    まず、QuestionIdを変更しました primary key

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

    次に、QuestionIdにインデックスを追加しました image_question

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

    次に、QuestionIdの最初の関係 正常に動作します

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

    次に、SessionIdのデータ型を変更しました 両方のテーブルのintへの

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

    次に、SessionIdにインデックスを追加しました image_question

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

    これがSessionIdの2番目の関係です それがあなたにとってもうまくいくことを願っています




    1. 小数点以下2桁の数値を書くSQLServer

    2. SQL Serverのsys.columns、sys.system_columns、およびsys.all_columnsの違い

    3. null値でのSQL結合

    4. SQL:フルネームフィールドから名、ミドルネーム、ラストネームを解析します