2011-03-17 4 views
1

은 내가 # 1025 오류가 발생합니다.MySQL의 # 1025 오류

SQL 쿼리 :

ALTER TABLE `routes` CHANGE `end_loc` `end_loc` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 

MySQL은 말했다 :

내가 PHP MyAdmin에서이 쿼리를 설정하기 때문에 재미
#1025 - Error on rename of './ridestr/#sql-1f44_26eeb' to './ridestr/routes' (errno: 150) 

... 내가 외부 키를 얻고 이유를 알고하지 않습니다 오류 ... 난 그냥

누군가가 도와 드릴까요 VARCHAR하기 INT에서 뭔가를 변경하기 위해 노력하고있어? routes.end_loc 열이 외부 키에 사용되는 경우

+0

의 errno : (150)은 일반적으로 외래 키 문제가 있음을 의미합니다 - 우리는 당신에게 더 도움이 될 수 있도록 당신이 당신의 구조 쿼리를 게시하시기 바랍니다 수 있습니까? – BigFatBaby

+0

당신은 쿼리하기 전에 외부 키 체크를 해제하고 쿼리 후 다시 가능하게 시도? –

답변

5

, 당신은 데이터 유형을 변경할 수 없습니다. 외래 키를 삭제하고 상위 및 하위 열의 데이터 형식을 변경 한 다음 외래 키를 다시 추가해야합니다. SHOW ENGINE INNODB STATUS\G 실행이 오류에 대한 자세한 내용은

다음은 LATEST FOREIGN KEY ERROR 섹션을 확인합니다.

0

하지만 당신은 모든 테이블 여기 의 UTF8로 전체 캐릭터 세트로 변경하려는 경우가 매우 어렵다 내가이 어려운 방법을 알고하지만 난이 작동 확신

 1 export the database (all tables) and open by notepad 

    2 replace all "latin1" by utf8 and save 

    3 then try to restore using mysqlAdministrator but it says wrong 

    4 so try restoring again but you have to select ignore errors radio button 
    5 it tries to restore some tables 

    6 then you have to restore again until no error message 

을 한 것입니다 에 대한 당신도