Tidak dapat menjatuhkan indeks yang diperlukan oleh kekangan kunci asing MySQL
<p>Saya perlu mengubah suai pangkalan data sedia ada saya untuk menambah lajur. Oleh itu, saya juga ingin mengemas kini medan UNIK untuk memasukkan lajur baharu itu. Saya cuba menggugurkan indeks semasa, tetapi saya terus mendapat mesej ralat <kod>MySQL Tidak boleh menjatuhkan indeks yang diperlukan dalam kekangan kunci asing</code></p>
<pre class="brush:php;toolbar:false;">BUAT JADUAL mytable_a (
ID TINYINT BUKAN NULL AUTO_INCREMENT KUNCI UTAMA,
Nama VARCHAR(255) BUKAN NULL,
UNIK(Nama)
) ENJIN=InnoDB;
CIPTA JADUAL mytable_b (
ID TINYINT BUKAN NULL AUTO_INCREMENT KUNCI UTAMA,
Nama VARCHAR(255) BUKAN NULL,
UNIK(Nama)
) ENJIN=InnoDB;
CIPTA JADUAL mytable_c (
ID TINYINT BUKAN NULL AUTO_INCREMENT KUNCI UTAMA,
Nama VARCHAR(255) BUKAN NULL,
UNIK(Nama)
) ENJIN=InnoDB;
CIPTA JADUAL `mytable` (
`ID` int(11) BUKAN NULL AUTO_INCREMENT,
`BANTUAN` tinyint(5) BUKAN NULL,
`BID` tinyint(5) BUKAN NULL,
`CID` tinyint(5) BUKAN NULL,
KUNCI UTAMA (`ID`),
KUNCI UNIK `BANTUAN` (`BANTUAN`,`BID`,`CID`),
KEY `BID` (`BID`),
KEY `CID` (`CID`),
KEKANGAN `mytable_ibfk_1` FOREIGN KEY (`AID`) RUJUKAN `mytable_a` (`ID`) PADA DELETE CASCADE,
KEKANGAN `mytable_ibfk_2` KUNCI ASING (`BID`) RUJUKAN `mytable_b` (`ID`) PADA DELETE CASCADE,
KEKANGAN `mytable_ibfk_3` FOREIGN KEY (`CID`) RUJUKAN `mytable_c` (`ID`) ON DELETE CASCADE
) ENJIN=InnoDB;
mysql> ALTER TABLE mytable DROP INDEX AID;
RALAT 1553 (HY000): Tidak boleh menjatuhkan indeks 'BANTUAN': diperlukan dalam kekangan kunci asing</pre>
<p><br /></p>