2014-04-05 4 views
0

myisam 테이블을 잠금 장치로 설정하면 나는이 문제를 해결할 필연적 인 필요성에서 myisam 테이블을 innodb로 변환하려고했습니다. 나는 phpmyadmin에서 시도하고 innodb에 dropdown에서 엔진을 선택하고 이동을 클릭했지만이 error.in 내 테이블에 5 백만 행이 있습니다.myisam에서 innodb로 변환 할 수 없습니다

SQL query: Edit Edit 

    ALTER TABLE `tableA` 
     ENGINE = InnoDB; 

    MySQL said: Documentation 
    #1071 - Specified key was too long; max key length is 767 bytes 

는 거기에 내가 그 코드를 실행하면/스크립트 전체 테이블이 변환됩니다 몇 시간이 이노 디비에 있도록 한 번에 100 행을 선택하여 테이블을 변환 할 수있는 방법.

제발 안내

답변

0

문제는 기본 키 열이 InnoDB에 비해 너무 길다는 것입니다. 먼저이 테이블의 기본 키 열 길이를 저장하는 데이터에 따라 적당한 길이로 변경하십시오.

+0

나는 두 개의 기본 키를 가지고 있는데 하나는 자동 증가이고 다른 하나는 제목이다. 기본 키에서 제목을 제거하려고 시도했지만 오류가 발생했다.이 코드를 실행하여 기본 키를 변경한다. 'tableA' drop primary key – Priya

+0

무엇인가? 프리메라리 키의 길이는? 또한, InnoDB에서'TEXT' 기본 키/인덱스를 가질 수 없다. – phoops

+0

예 제목 열은 텍스트이므로 varchar로 변경해야합니까? – Priya