2016년 3월 7일 월요일

20160307 MySQL에 뺴놓은 숫자 인덱스 추가하기!

지금까지 잘? 쓰던 테이블에 인덱스가 있기는 한데 모두 변경 가능한 컬럼이었습니다.
... 수정이랑 삭제 기능을 넣어야 하는데...

어?! .... ㅋㅋㅋㅋ

그래서 새로운 컬럼을 추가하고 기존에 있는 로우에는 인덱스(숫자)를 부여!
새로 추가하는 로우에는 자동으로 하나씩 추가할 수 있도록 설정을 해 봤습니다.

# 테이블에 인덱스로 사용할 컬럼을 추가
alter table 테이블이름 add(컬럼이름 컬럼타입(int, numeric등));
=> alter table test_table add(index int);
# 컬럼 삭제 (잘못 추가했을 경우)
alter table test_table drop index;
# 번호를 1부터 할당
set @num:=0;
update test_table set index = @num := @num+1;

여기까지는 기존의 로우에 인덱스를 부여한 상황

ALTER TABLE `test_table` MODIFY COLUMN `index` INT AUTO_INCREMENT;

이렇게 해주면 추후 생성되는 로우에도 인덱스가 자동으로 들어가게됩니다.
물론 insert할 때 index컬럼은 자동으로 추가됩니다. 강제로 지정하지 않으셔도 됩니다.



덧. 인덱스라고 하면 검색을 더욱 빠르게 해주는 인덱스를 생각하실 수 있는데, 그것은 따로 공부를...ㅎㅎ
비슷한 의미이긴 합니다만... 
이런곳을 참조하시거나 검색하시길 바랍니다...^^;
20000.

댓글 없음:

댓글 쓰기