ERROR 1264 : out of range value for column 해결
MySQL을 데이터베이스를 사용하면서 Insert를 하는 도중 "ERROR 1264 : out of range value for column"에 대한 오류가 발생하는 경우가 있다.
그럼 어떻게 해당 에러가 발생되고 그걸 해결하는 방법은 어떻게 하는지 간단하게 알아보도록 하자.
1. 발생 원인
해당 오류의 경우는 데이터를 Column에 Insert 하는 과정에서 발생되며, Column에 설정한 데이터 형식과 Insert 되는 데이터의 형식이 틀린 경우 발생된다.
# 발생 원인 Example
mysql> INSERT INTO tb_test(id, cloumn_value) VALUE(1, 10000000000000000000000000);
ERROR 1264 : Out of value for column 'cloumn_value' at row 1
2. 발생 원인 이유
2.1 데이터 형식 확인
MySQL 데이터베이스에서는 각 Column 마다 데이터 형식을 가지고 있다.
예를 들어 INT 형식은 정수를 저장하고, CHAR 혹은 VARCHAR 형식은 문자열을 저장한다.
오류가 발생하면 Column의 데이터 형식을 검토해보아야 한다.
데이터 형식을 정확하게 지정하고 Insert 데이터가 해당 형식과 일치하는지 확인이 필요하다.
2.2 최소 및 최대 값 검토
각 Column은 일반적으로 최소 및 최대 값을 허용한다.
정수 Column의 경우, 해당 Column이 허용하는 값의 범위를 확인해야 한다.
만약 입력 값이 해당 범위를 벗어난다면, Column의 최소 및 최대 값을 고려하여 값을 조정해야 한다.
2.3 부호 및 소수점 관리
부호 또는 소수점과 관련된 데이터 형식을 사용하는 경우, 입력 값이 부호 및 소수점 제한을 준수하는지 확인을 해야 한다.
예를 들어 UNSIGNED 속성이 있는 정수 Column에 음수값을 Insert 하려고 하면 해당 오류가 발생할 수 있다.
2.4 정수 오버플로우 확인
INT 또는 BIGINT와 같은 정수 데이터 형식을 사용하는 경우, 입력 값이 해당 형식의 허용 범위를 초과하지 않는지 주의해야 한다.
큰 값을 저장해야 하는 경우 더 큰 데이터 형식을 고려해야 한다.
2.5. 문자열 및 날짜 형식 확인
문자열이나 날자와 관련된 데이터 형식을 사용하는 경우 입력 값이 해당 형식에 맞는지 확인해야 한다.
특히 날짜 형식은 YYYY-MM-DD 형식과 일치해야 한다.
3. 정리
결국 "ERROR 1264 : out of range value for column"는 Column에 정의한 데이터 형식과 다른 형식의 값이 Insert 되기 때문에 발생되는 부분이다.
위에 정리한 원인들을 기반으로 데이터 Insert시에 데이터 유효성을 항상 확인하고 데이터 형식을 정확히 사용하는 것이 중요하다.
🌵댓글