명백한 답변으로 거의 비슷한 질문을 많이 봅니다. 그러나이 질문이 이미 여기에없는 것은 확실합니다.MySQL은 auto_increment없이 값을 증가시켜 새로운 열을 채 웁니다.
기존 테이블에 자동 증가 ID 열을 추가하고이를 기본 키로 설정해야합니다. 기존 데이터를 잃을 수는 없습니다.
성공적으로 테이블 구조를 변경할 수는 있지만 새 열의 잘린 데이터에 대한 오류가 발생합니다. 데이터를 볼 때 새 자동 증가 열의 모든 값이 null입니다 (따라서 고유하지 않습니다).
기본 키의 고유성을 보장하기 위해이 값을 어떻게 다시 채울 수 있습니까?
*** 임시 테이블에 기존 데이터를 덤핑하고 간단한 솔루션이있는 경우 다시 삽입하는 것을 피하는 것이 좋습니다.
현재 스크립트
alter table the_table add new_field int first;
alter table the_table drop primary key, add primary key (new_field);
alter table the_table change new_field new_field int unsigned not null auto_increment;
는 내가 기본 키가 아닌 자동 증가 컬럼을 가질 수 없습니다로 순서로 스크립트를 실행합니다.
(MySQL은 5.3)
팁 주셔서 감사합니다,하지만이 결과 "SQL 오류 (1068) : 여러 개의 기본 키 정의는"난 그냥 당신에게 CREATE 문을 준 – tomfumb
@tomfumb, 당신은 확실히 이전 주 드롭해야 키. –
AHA 완벽! 많은 감사 – tomfumb