mysql 기본키값을 전체를 증가 시키기 

(ALTER TABLE 사용설명)

바로 증가 시킬수는 없고 증가된 칼럼을 만든후 기본키로 지정
- 주의 ! 다른 많은 테이블에 연동되어 있다면 포기하는 것을 추천 


-- id_new 칼럼 생성
ALTER TABLE `users` ADD `id_new` int(11) unsigned DEFAULT NULL AFTER `id`;


-- 기본키 칼럼(id) 을  id_new칼럼에 증가된 값으로 복사
update users set id_new = id + 1000;

-- 기존 키를 기본키에서 해제
ALTER TABLE users MODIFY COLUMN id INT;
ALTER TABLE users DROP PRIMARY KEY;

-- 새로운 키를 기본키로 설정
ALTER TABLE users ADD PRIMARY KEY (id_new);
ALTER TABLE  users CHANGE COLUMN id_new id_new INT(11) UNSIGNED NOT NULL AUTO_INCREMENT;

-- 기존 키 삭제
ALTER TABLE users DROP id;

-- 새로운 키 이름 변경
ALTER TABLE  users CHANGE COLUMN id_new id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT;



//=================
//참고
-- 참고, 칼럼 위치 순서 변경
-- ALTER TABLE users MODIFY id_new  AFTER id;

-- 참고: 테이블 정보 보기
SHOW CREATE TABLE users;
- DESCRIBE users; 도 테이블 정보를 볼수 있지만 외래키등의 정보는 표시 안함

-- 외래키 삭제, 추가
ALTER TABLE tbl2 DROP FOREIGN KEY fk_1;
ALTER TABLE tbl2 ADD CONSTRAINT fk_1 FOREIGN KEY (`tbl2_id`) REFERENCES `users` (`id`);

반응형
Posted by codens