Programing

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

crosscheck 2020. 11. 19. 07:51
반응형

기존 테이블에 자동 증가 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 `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;

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

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;

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


ADD를 MODIFY로 변경하면 작동합니다!

바꾸다

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT

ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT;

ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST

ALTER TABLE users CHANGE id int( 30 ) NOT NULL AUTO_INCREMENT

정수 매개 변수는 내 기본 SQL 설정을 기반으로합니다. 좋은 하루 되세요.


열이 다른 기존 기본 키를 확인하십시오. 그렇다면 다음을 사용하여 기본 키를 삭제하십시오.

ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO

그런 다음 쿼리를 그대로 작성하십시오.


ALTER TABLE `table` ADD `id` INT NOT NULL AUTO_INCREMENT unique

이 시도. 기본 키를 삭제할 필요가 없습니다.


다음과 같이 진행하십시오.

Make a dump of your database first

Remove the primary key like that

ALTER TABLE yourtable DROP PRIMARY KEY

Add the new column like that

ALTER TABLE yourtable add column Id INT NOT NULL AUTO_INCREMENT FIRST, ADD primary KEY Id (Id)

테이블이 표시되고 AutoInc가 업데이트됩니다.

참고URL : https://stackoverflow.com/questions/14753321/add-auto-increment-id-to-existing-table

반응형