MySQL 테이블에 기본 키를 추가하는 방법은 무엇입니까?
이것은 내가 시도한 것이지만 실패합니다.
alter table goods add column `id` int(10) unsigned primary AUTO_INCREMENT;
누구에게 팁이 있습니까?
열을 추가 한 후 언제든지 기본 키를 추가 할 수 있습니다.
ALTER TABLE goods ADD PRIMARY KEY(id)
스크립트가 작동하지 않는 이유는 다음 PRIMARY KEY
과 같은 단어뿐만 아니라을 지정해야합니다 PRIMARY
.
alter table goods add column `id` int(10) unsigned primary KEY AUTO_INCREMENT;
테이블이 상당히 크면 다음 명령문을 사용하지 마십시오.
alter table goods add column `id` int(10) unsigned primary KEY AUTO_INCREMENT;
임시 테이블의 모든 데이터를 복사하기 때문에 테이블을 변경 한 다음 다시 복사합니다. 수동으로하는 것이 좋습니다. 테이블 이름 변경 :
rename table goods to goods_old;
기본 키와 필요한 모든 인덱스를 사용하여 새 테이블을 만듭니다.
create table goods (
id int(10) unsigned not null AUTO_INCREMENT
... other columns ...
primary key (id)
);
이전 테이블의 모든 데이터를 새 테이블로 이동하고 키와 인덱스를 비활성화하여 복사 속도를 높입니다.
- 해당 사례 의 MyISAM 테이블 :
SET UNIQUE_CHECKS=0;
ALTER TABLE goods DISABLE KEYS;
INSERT INTO goods (... your column names ...) SELECT ... your column names FROM goods_old;
ALTER TABLE goods ENABLE KEYS;
SET UNIQUE_CHECKS=1;
또는
-InnoDB 테이블에 이것을 사용 하십시오.
SET AUTOCOMMIT = 0; SET UNIQUE_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;
INSERT INTO goods (... your column names ...) SELECT ... your column names FROM goods_old;
SET FOREIGN_KEY_CHECKS=1; SET UNIQUE_CHECKS=1; COMMIT; SET AUTOCOMMIT = 1;
~ 2 억 개의 행이있는 테이블에 PK를 추가하는 데 2000 초가 걸립니다.
기존 컬럼
기존 열에 기본 키 제약 조건을 추가하려는 경우 이전에 나열된 모든 구문이 실패합니다.
기존 열에 기본 키 제약 조건을 추가하려면 다음 양식을 사용하십시오.
ALTER TABLE `goods`
MODIFY COLUMN `id` INT(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT;
이것이 다른 사람에게 중요한지 확실하지 않지만 데이터베이스의 첫 번째 열보다 id 테이블을 선호합니다. 그 구문은 다음과 같습니다.
ALTER TABLE your_db.your_table ADD COLUMN `id` int(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT FIRST;
첫 번째 답변보다 약간 개선되었습니다. 다른 위치에 있기를 원한다면
ALTER TABLE unique_address ADD COLUMN `id` int(10) UNSIGNED PRIMARY KEY AUTO_INCREMENT AFTER some_other_column;
HTH, -ft
이 코드는 mysql db에서 작동합니다.
ALTER TABLE `goods`
ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`id`);
ALTER TABLE GOODS MODIFY ID INT(10) NOT NULL PRIMARY KEY;
이 쿼리를 사용하십시오.
alter table `table_name` add primary key(`column_name`);
이 시도,
alter table goods add column `id` int(10) unsigned primary key auto_increment
제대로 작동하려면 따옴표를 제거하십시오 ...
alter table goods add column id int(10) unsigned primary KEY AUTO_INCREMENT;
참고 URL : https://stackoverflow.com/questions/5132923/how-to-add-a-primary-key-to-a-mysql-table
'IT story' 카테고리의 다른 글
Nginx 499 오류 코드 (0) | 2020.09.06 |
---|---|
iPhone UITableView 스크롤 성능 향상을위한 트릭? (0) | 2020.09.06 |
Scala (Test)로 instanceof 검사를 수행하는 방법 (0) | 2020.09.06 |
min-font-size 및 max-font-size와 같은 것이 있습니까? (0) | 2020.09.06 |
Webrick은 응답 속도가 매우 느립니다. (0) | 2020.09.06 |