0

テーブルから外部キーを削除しようとしていますが、mysql で以下のエラーが発生します。

1025 - 「./mobile_app/Question」の「./mobile_app/#sql2-4517-15515」への名前変更エラー (errno: 152)

このエラーは何を意味し、どのように修正できますか?

以下は、外部キーを削除しようとしているコードです。

alter table Question drop foreign key FK_Option_Table;

以下は、質問表の詳細です (この表には行はありません)。

CREATE TABLE `Question` (
 `SessionId` varchar(10) NOT NULL DEFAULT '',
 `QuestionId` int(5) NOT NULL,
 `QuestionContent` varchar(5000) NOT NULL,
 `NoofAnswers` int(2) NOT NULL,
 `AnswerId` int(10) NOT NULL AUTO_INCREMENT,
 `ReplyId` varchar(2) NOT NULL,
 `QuestionMarks` int(4) NOT NULL,
 `OptionId` varchar(3) NOT NULL,
 PRIMARY KEY (`SessionId`,`QuestionId`),
 KEY `FK_Option_Table` (`OptionId`),
 KEY `FK_IndividualQuestion` (`QuestionId`),
 KEY `FK_Reply` (`ReplyId`),
 KEY `FK_AnswerId` (`AnswerId`)
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8

以下は Option_Table の詳細です。

CREATE TABLE `Option_Table` (
 `OptionId` varchar(3) NOT NULL,
 `OptionType` varchar(20) NOT NULL,
 PRIMARY KEY (`OptionId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

このテーブルには 24 行あり、以下はサンプルです。

OptionId OptionType
O1       A-C
O2       A-D
O3       A-E
O4       A-F
...
4

1 に答える 1

2

これらは、あなたが持っているインデックスの外部キーではありません。create ステートメントに外部キーがありません。

外部キーを作成する例。

ALTER TABLE `Question` 
  ADD CONSTRAINT `SessionId`
  FOREIGN KEY (`SessionId` )
  REFERENCES `Option_Table` (`OptionId` )
  ON DELETE NO ACTION
  ON UPDATE CASCADE
, ADD INDEX `test_idx` (`SessionId` ASC) ;

ALTER TABLE `Question` DROP FOREIGN KEY `SessionId` ;
于 2012-09-30T23:22:59.027 に答える