MySQL 外部キー制約で必要なインデックスを削除できません
P粉882357979
P粉882357979 2023-08-14 13:34:46
0
2
588
<p>既存のデータベースを変更して列を追加する必要があります。したがって、UNIQUE フィールドも更新して、その新しい列を含めたいと考えています。現在のインデックスを削除しようとしていますが、エラー メッセージ「<code>MySQL Cannotdrop Index required in a external keyconstraint</code></p>」が表示され続けます。 <pre class="brush:php;toolbar:false;">CREATE TABLE mytable_a ( ID TINYINT NOT NULL AUTO_INCREMENT 主キー、 名前 VARCHAR(255) NOT NULL、 ユニークな名前) ) ENGINE=InnoDB; CREATE TABLE mytable_b ( ID TINYINT NOT NULL AUTO_INCREMENT 主キー、 名前 VARCHAR(255) NOT NULL、 ユニークな名前) ) ENGINE=InnoDB; CREATE TABLE mytable_c ( ID TINYINT NOT NULL AUTO_INCREMENT 主キー、 名前 VARCHAR(255) NOT NULL、 ユニークな名前) ) ENGINE=InnoDB; CREATE TABLE `mytable` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `AID` tinyint(5) NOT NULL、 `BID` tinyint(5) NOT NULL、 `CID` tinyint(5) NOT NULL、 主キー (`ID`)、 一意のキー `AID` (`AID`、`BID`、`CID`)、 キー `BID` (`BID`)、 キー `CID` (`CID`)、 CONSTRAINT `mytable_ibfk_1` FOREIGN KEY (`AID`) REFERENCES `mytable_a` (`ID`) ON DELETE CASCADE、 CONSTRAINT `mytable_ibfk_2` FOREIGN KEY (`BID`) REFERENCES `mytable_b` (`ID`) ON DELETE CASCADE、 CONSTRAINT `mytable_ibfk_3` FOREIGN KEY (`CID`) REFERENCES `mytable_c` (`ID`) ON DELETE CASCADE ) ENGINE=InnoDB; mysql> ALTER TABLE mytable DROP INDEX AID; エラー 1553 (HY000): インデックス 'AID' を削除できません: 外部キー制約</pre> で必要です。 <p><br /></p>
P粉882357979
P粉882357979

全員に返信(2)
P粉056618053

###ステップ1###

外部キーをリストします (インデックス名とは異なることに注意してください)

リーリー

結果には外部キー名が表示されます。

###フォーマット:### リーリー ###ステップ2###

削除 (外部キー/主キー/キー)

リーリー

ステップ3

インデックスを削除します。

いいねを押す +0
P粉043566314

外部キーを削除する必要があります。 MySQL では、外部キーによってテーブルにインデックスが自動的に作成されます (この SO 質問 はこのトピックに関するものです)。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート