2010-05-20 2 views
3

새로운 증분을 자동 증분과 키로 설정하여 테이블을 변경하려고합니다.mysql은 자동 증가와 추가 키를 추가합니다.

테이블에 이미 하나의 키가 있으며이 키가 추가됩니다. 내가 얻는 오류는 다음과 같다.

error : Multiple primary key defined 

내 코드는 다음과 같습니다

alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; 

나는 또한 키 이름을 포장 시도합니다 한 행운

alter table user add column id int (11) NOT NULL AUTO_INCREMENT PRIMARY (id) KEY FIRST; 

즉,하지만 여전히.

어떻게 할 수 있습니까?

+0

우리는'SHOW CREATE TABLE' 결과를 보여줍니다. –

답변

3

nathan이 질문에 거의 답했습니다.

SHOW INDEX FROM mydb.mytable SQL 명령을 사용하여 기존 인덱스의 이름을 찾을 수 있습니다.

DROP_INDEX existing_index ON mydb.mytable을 사용하여 기존 색인을 먼저 삭제해야합니다.

그런 다음 테이블을 변경하고 코드와 함께 기본 색인을 추가하십시오.

마지막으로 CREATE UNIQUE INDEX unique_index ON mydb.mytable (column)을 사용하여 다른 인덱스를 고유 인덱스로 만듭니다.

+0

1) 색인 이름 찾기, 2) 색인 삭제 및 3) 고유 한 색인 생성을위한 구문은 무엇입니까? – Kieveli

+0

수정 된 답변보기 이 모든 것은 http://dev.mysql.com/doc/index.html에있는 MySQL의 특정 버전에 대한 MySQL 매뉴얼에 있습니다. –

2

MySQL은 기본 키가 아닌 AUTO_INCREMENT 컬럼을 지원하지 않습니다. 하나의 옵션은 AUTO_INCREMENT 컬럼을 프라이 머리 키로 만들고, 다른 '키'에 유일 컨 스트레인 트를가집니다.

+1

사실, 그렇습니다. 지원하지 않는 것은 2 개의 기본 키입니다. –

+0

와우, 당신은 맞아요 @ypercube, 나는 다르게 생각하고 갔다. 문서는 그것에 대해 명확하지 않습니다. 감사! – nathan

+0

UNIQUE INDEX에도 AUTO_INCREMENT를 추가 할 수 있습니다. – Marcin