MySQL "Integer display width is deprecated" 경고 메시지 이해하기
경고(warning) 메시지 해석
Warning | 1681 | Integer display width is deprecated and will be removed in a future release.
이 경고 메시지는 MySQL 8.0에서 정수형 데이터 타입에 표시 너비를 지정하는 것이 더 이상 사용되지 않으며(deprecated), 향후 버전에서 제거될 예정이라는 것을 알려주는 메시지다.
기존 사용 방식
과거의 표시 너비 지정 방식
-- 표시 너비를 지정한 방식
CREATE TABLE users (
id INT(11),
age INT(3),
score TINYINT(2)
);
여기서 괄호 안의 숫자(11, 3, 2)는 표시 너비(display width)를 의미했다. 하지만 이는 실제 저장할 수 있는 값의 범위와는 무관했다.
새로운 권장 방식
현재 권장되는 방식
-- 권장되는 방식
CREATE TABLE users (
id INT,
age INT,
score TINYINT
);
정수형 타입별 실제 저장 범위
TINYINT : -128 to 127 (또는 0 to 255 unsigned)
SMALLINT : -32768 to 32767
INT : -2147483648 to 2147483647
BIGINT : -9223372036854775808 to 9223372036854775807
주의사항
- 기존 코드 영향
- 기존 코드는 계속 작동함
- 새로운 코드 작성 시 표시 너비 지정 제외
- 마이그레이션 고려사항
- 테이블 정의 업데이트 고려
- 애플리케이션 코드 확인
해결 방법
1. 새로운 테이블 생성 시
-- 올바른 방법
CREATE TABLE new_table (
id INT,
quantity INT UNSIGNED,
small_number TINYINT
);
2. 기존 테이블 수정 시
-- 필요한 경우 타입 변경
ALTER TABLE existing_table
MODIFY COLUMN id INT;
실무 팁
- 새로운 프로젝트에서는 표시 너비를 지정하지 않는 것이 좋다
- 기존 프로젝트는 당장 수정할 필요는 없으나, 점진적 업데이트를 고려한다
'개발&프로그래밍' 카테고리의 다른 글
[IntelliJ] IntelliJ IDEA(2024.1.3 버전)에서 항상 파일 경로 보이게 설정 (0) | 2025.02.13 |
---|---|
[iTerm2] 스크롤 무제한으로 늘리기 - Unlimited scrollback 설정 (0) | 2025.02.10 |
[MySQL] TINYINT vs BIT - 어떤 것을 사용해야 할까? (1) | 2025.02.07 |
[MAC] zsh-syntax-highlighting 설치 및 사용하기 (0) | 2025.01.10 |
[MAC] zsh-autosuggestions 설치법 및 사용법 (0) | 2025.01.10 |
댓글