Der durch die MySQL-Fremdschlüsseleinschränkung erforderliche Index kann nicht gelöscht werden
P粉882357979
P粉882357979 2023-08-14 13:34:46
0
2
554
<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>
P粉882357979
P粉882357979

Antworte allen(2)
P粉056618053

步骤1

列出外键(注意与索引名称不同)

SHOW CREATE TABLE  <表名>

结果将显示外键名称。

格式:

CONSTRAINT `FOREIGN_KEY_NAME` FOREIGN KEY (`FOREIGN_KEY_COLUMN`) REFERENCES `FOREIGN_KEY_TABLE` (`id`),

步骤2

删除(外键/主键/键)

ALTER TABLE <表名> DROP FOREIGN KEY <外键名称>

步骤3

删除索引。

P粉043566314

你必须删除外键。在MySQL中,外键会自动在表上创建一个索引(这个SO问题有关此主题)。

ALTER TABLE mytable DROP FOREIGN KEY mytable_ibfk_1 ;
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!