열을 추가하려면 기존 데이터베이스를 수정해야 합니다. 따라서 새 열을 포함하도록 UNIQUE 필드도 업데이트하고 싶습니다. 현재 인덱스를 삭제하려고 하는데 MySQL은 외래 키 제약 조건에 필요한 인덱스를 삭제할 수 없습니다
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' 인덱스를 삭제할 수 없습니다. 외래 키 제약 조건에 필요합니다.
1단계
외래 키 나열(인덱스 이름과 다름)
으아악결과에 외래 키 이름이 표시됩니다.
형식:
으아악2단계
삭제(외래 키/기본 키/키)
으아악3단계
색인 삭제.
외래키를 삭제해야 합니다. MySQL에서 외래 키는 자동으로 테이블에 인덱스를 생성합니다(이SO 질문은 이 주제에 관한 것입니다).
으아악