[mysql] 기존 테이블에 자동 증가 ID를 추가 하시겠습니까?

‘fname’, ‘lname’, ’email’, ‘password’및 ‘ip’가 포함 된 기존 테이블이 있습니다. 하지만 이제는 자동 증가 열을 원합니다. 그러나 입력 할 때 :

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT

다음을 얻습니다.

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

어떤 충고?:)



답변

이 시도

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY


답변

자동 ID가으로 사용되는지 여부에 신경 쓰지 않는다면 PRIMARY KEY그냥 할 수 있습니다.

ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;

나는 이것을했고 그것은 대우를 받았다.


답변

기존 테이블에 AUTO_INCREMENT를 추가하려면 다음 SQL 명령을 실행해야합니다.

 ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key


답변

먼저 테이블의 기본 키를 제거해야합니다.

ALTER TABLE nametable DROP PRIMARY KEY

이제 자동 증가를 추가 할 수 있습니다.

ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY


답변

글쎄, 당신은 먼저 드롭 auto_increment하고 primary key당신은 다음과 같이 당신의 것을 추가해야합니다.

-- drop auto_increment capability
alter table `users` modify column id INT NOT NULL;
-- in one line, drop primary key and rebuild one
alter table `users` drop primary key, add primary key(id);
-- re add the auto_increment capability, last value is remembered
alter table `users` modify column id INT NOT NULL AUTO_INCREMENT;


답변

다음 명령을 실행하는 경우 :

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;

그러면 오류가 표시됩니다.

ERROR 1060 (42S21): Duplicate column name 'id'

이 명령은 id기존 테이블에 이름이 지정된 새 열을 추가하려고하기 때문 입니다.

기존 열을 수정하려면 다음 명령을 사용해야합니다.

ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;

기존 열 제약 조건을 변경하는 데 작동합니다 ….!


답변

테이블의 기본 키가 있으면 삭제하십시오.

 ALTER TABLE `tableName` DROP PRIMARY KEY;

테이블에 자동 증가 열 추가 :

ALTER TABLE `tableName` ADD `Column_name` INT PRIMARY KEY AUTO_INCREMENT;

기본 키로 고려할 열을 수정합니다.

alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;