Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

mysql 테이블의 컬럼 최대값을 잘 설정해야 하는 이유?!( id 값이 최대값을 넘었을 때 경험)

MYSQL, 20222 min read

배경

  1. 3/5일 토요일 새벽부터 등록된 신규 회원의 kakao_id 가 모두 동일한 값으로 db에 등록되었다.

  2. 3/7 월요일 문의전화가 오전부터 발생 1.kako_id 로 로그인 불가 2.회원들의 kakao_id 가 동일함 확인

당시 문제가 발생했을때 kakao에서 넘겨주는 값이 문제라고 생각했다.

회원쪽 담당자가 디버깅을 해봤고 (신규 회원을 찾을 수 없어서.. 다른 팀 사람에게 도움 요청) 처음 디버깅시 값이 똑같이 온다고 생각했고 개발자가 kakao develop에 문의 글을 남겨서 답변을 기다렸다.

회원쪽 담당자가 여러번 디버깅을 해보면서 알게된 사실은 kakao_id는 제대로 왔고 db에 등록시 값이 mysql max int value =2147483647 이었다.

원인

우리 회원 db 의 kakao_id 컬럼의 데이터 타입이 int 였다. 허용범위가 초가되어서 2147483647로 동일한 값이 등록되었다.

최초 개발했을때 kakao_id가 어떤 값으로 오고 폭을 고려해서 개선해야 겠다고 아무도 생각못했었다.

운영을 하면서 생각지도 못한 에러가 많이 나오는거 같다.

방법

-- kakao_id 컬럼의 데이터 타입을 수정
-- (1)
ALTER TABLE [tablename] CHANGE [columnName] [columnName] BIGINT not null default '0'
-- (2)
alter table [table_name] modify [column_name] BIGInt

참고

//How do I change the data type for a column in MySQL? 참고1

참고2-BIGINT

© 2024 by GwiyeomGo Tech Blog. All rights reserved.