DB에 계속해서 자료를 넣고 이를 카운트하기 위한 데이터 타입이 필요했다.
Int로는 작을 것 같아서 Int보다 큰 Bigint를 사용하기로 결정.
Bigint는 8바이트의 자료형으로 대략 -922경(-9220000조) ~ 922경(9220000조) 까지 숫자를 담을 수 있다.
다른 자료형과 범위를 알고 싶으면 아래 사이트를 방문해 보도록 하자.
(MySQL 데이터형 및 크기: https://blog.lael.be/post/115)
Bigint로 query문을 짜 비교를 해보려고 했더니 아무 결과도 나오지 않았다. 비교 구문이 일반적인 int랑 다른지 알고 글을 쓰기 시작했지만
결과는 auto_increment로 인해 기존 데이터가 지워진 후에도 이 column 값은 전의 값에서 계속 카운트되었다는 점이다.
그렇기 때문에 auto_increment를 다시 설정해줘야 한다.
이러한 auto_increment를 재설정 해주는 방법은 다음과 같다.
- ALTER TABLE [테이블 명] AUTO_INCREMENT=1;
그렇지만 이는 전부 delete를 할 때이고 특정 부분만을 delete를 할 시 auto_increment에 의해 기존 데이터와 충돌이 일어난다.
그렇기 때문에 아래와 같이 재인덱싱을 해주는 게 좋다.
- ALTER TABLE [테이블 명] AUTO_INCREMENT=1;
- SET @COUNT = 0;
- UPDATE [테이블 명] SET [AUTO_INCREMENT 열 이름] = @COUNT:=@COUNT+1;
출처: https://blog.jooylee.com/p/20171008467
'개발하면서 부딪혔던 문제들 > DB' 카테고리의 다른 글
[DB][Mariadb] Lock 문제를 해결해보자 (2) | 2018.07.26 |
---|---|
[DB][Mariadb] Mariadb 활용 시 error-1 (0) | 2018.07.22 |