Der durch die MySQL-Fremdschlüsseleinschränkung erforderliche Index kann nicht gelöscht werden
<p>Ich muss meine vorhandene Datenbank ändern, um eine Spalte hinzuzufügen. Daher möchte ich auch das Feld UNIQUE aktualisieren, um diese neue Spalte aufzunehmen. Ich versuche, den aktuellen Index zu löschen, erhalte jedoch weiterhin die Fehlermeldung <code>MySQL kann den in einer Fremdschlüsseleinschränkung benötigten Index nicht löschen</code></p>
<pre class="brush:php;toolbar:false;">CREATE TABLE mytable_a (
ID TINYINT NICHT NULL AUTO_INCREMENT PRIMÄRSCHLÜSSEL,
Name VARCHAR(255) NICHT NULL,
Einzigartiger Name)
) ENGINE=InnoDB;
TABELLE ERSTELLEN mytable_b (
ID TINYINT NICHT NULL AUTO_INCREMENT PRIMÄRSCHLÜSSEL,
Name VARCHAR(255) NICHT NULL,
Einzigartiger Name)
) ENGINE=InnoDB;
TABELLE ERSTELLEN mytable_c (
ID TINYINT NICHT NULL AUTO_INCREMENT PRIMÄRSCHLÜSSEL,
Name VARCHAR(255) NICHT NULL,
Einzigartiger Name)
) ENGINE=InnoDB;
TABELLE „mytable“ ERSTELLEN (
`ID` int(11) NOT NULL AUTO_INCREMENT,
„AID“ tinyint(5) NICHT NULL,
„BID“ tinyint(5) NICHT NULL,
„CID“ tinyint(5) NICHT NULL,
PRIMÄRSCHLÜSSEL („ID“),
EINZIGARTIGER SCHLÜSSEL „AID“ („AID“, „BID“, „CID“),
SCHLÜSSEL „BID“ („BID“),
SCHLÜSSEL `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;
FEHLER 1553 (HY000): Index „AID“ kann nicht gelöscht werden: erforderlich in einer Fremdschlüsseleinschränkung</pre>
<p><br /></p>