>  Q&A  >  본문

MySQL 외래 키 제약 조건에 필요한 인덱스를 삭제할 수 없습니다.

<p>열을 추가하려면 기존 데이터베이스를 수정해야 합니다. 따라서 새 열을 포함하도록 UNIQUE 필드도 업데이트하고 싶습니다. 현재 인덱스를 삭제하려고 하는데 <code>MySQL은 외래 키 제약 조건에 필요한 인덱스를 삭제할 수 없습니다</code></p>라는 오류 메시지가 계속 나타납니다. <pre class="brush:php;toolbar:false;">CREATE TABLE mytable_a( ID TINYINT NOT NULL AUTO_INCREMENT 기본 키, 이름 VARCHAR(255) NOT NULL, 고유(이름) ) 엔진=InnoDB; 테이블 생성 mytable_b( ID TINYINT NOT NULL AUTO_INCREMENT 기본 키, 이름 VARCHAR(255) NOT NULL, 고유(이름) ) 엔진=InnoDB; 테이블 생성 mytable_c( ID TINYINT NOT NULL AUTO_INCREMENT 기본 키, 이름 VARCHAR(255) NOT NULL, 고유(이름) ) 엔진=InnoDB; 테이블 생성 `mytable`( `ID` int(11) NOT NULL AUTO_INCREMENT, `AID`tinyint(5) NULL이 아닙니다. `BID`tinyint(5) NULL이 아닙니다. `CID`tinyint(5) NULL이 아닙니다. 기본 키(`ID`), 고유 키 `AID` (`AID`,`BID`,`CID`), 키 `입찰`(`입찰`), 키 `CID`(`CID`), CONSTRAINT `mytable_ibfk_1` FOREIGN KEY (`AID`) 참조 `mytable_a` (`ID`) ON DELETE CASCADE, CONSTRAINT `mytable_ibfk_2` FOREIGN KEY (`BID`) 참조 `mytable_b` (`ID`) ON DELETE CASCADE, CONSTRAINT `mytable_ibfk_3` FOREIGN KEY (`CID`) 참조 `mytable_c` (`ID`) ON DELETE CASCADE ) 엔진=InnoDB; mysql> ALTER TABLE mytable DROP INDEX AID; 오류 1553(HY000): 'AID' 인덱스를 삭제할 수 없습니다. 외래 키 제약 조건</pre>에 필요합니다. <p><br /></p>
P粉882357979P粉882357979453일 전559

모든 응답(2)나는 대답할 것이다

  • P粉056618053

    P粉0566180532023-08-15 11:27:29

    1단계

    외래 키 나열(인덱스 이름과 다름)

    으아악

    결과에 외래 키 이름이 표시됩니다.

    형식:

    으아악

    2단계

    삭제(외래 키/기본 키/키)

    으아악

    3단계

    색인 삭제.

    회신하다
    0
  • P粉043566314

    P粉0435663142023-08-15 00:33:14

    외래키를 삭제해야 합니다. MySQL에서 외래 키는 자동으로 테이블에 인덱스를 생성합니다(이 SO 질문은 이 주제에 관한 것입니다).

    으아악

    회신하다
    0
  • 취소회신하다