2012-04-30 2 views
2

에서 외래 키를 변경 : 그러나가 어떻게 내 MySQL 데이터베이스에서 외래 키를 설정 한 phpMyAdmin을

ALTER TABLE `gameplayers` ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE CASCADE ON DELETE CASCADE; 

, 내가가 ON UPDATE를 원하는 ON 더 이상 삭제 모르겠습니다.

그래서 나는 구조 탭의 인덱스 섹션의 편집 연필 아이콘을 클릭, 내 phpAdmin에 가서 나는이 얻을 :의 만 주의 ("PRIMARY"이름이어야합니다 :

이 경고 키!)

변경 사항은 수동으로 수행하면됩니까? 즉, 연필 아이콘이 작동하지 않습니다.

또한 : 인덱스와 마찬가지로 외래 키가 mysql 검색에서 동일한 속도 보너스 효과가 있습니까?

답변

8

외래 키는 색인을 필요로하므로 효과적으로 외래 키 제약 조건을 생성하고 색인화하여 일반 색인처럼 쿼리를 해결할 수 있습니다.

당신이 사용하는 phpMyAdmin의 버전이 확실하지 않습니다, 나는 외래 키 constains가 최신 버전에서 지원된다고 생각하지만 외래 키 인덱스를 나열하지 않았으며 기본 키가 찾고있는 것이 아닙니다 . 그러나 일반 SQL을 사용하여 키를 수정할 수 있습니다.

ALTER TABLE `gameplayers` DROP FOREIGN KEY FK_GAMENUMBER, 
    ADD CONSTRAINT `FK_GAMENUMBER` FOREIGN KEY (`GameNumber`) REFERENCES `games`(`GameNumber`) ON UPDATE NO ACTION ON DELETE NO ACTION; 
관련 문제