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
487

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 MySQL kann den in einer Fremdschlüsseleinschränkung benötigten Index nicht löschen

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


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 ;
      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!