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>