'IT_Expert/DataBase'에 해당되는 글 53

  1. 2015.11.18 mysql] Out of range value for column 'num_1' at row 1
IT_Expert/DataBase | Posted by 낫기법필 2015. 11. 18. 14:09

mysql] Out of range value for column 'num_1' at row 1

[쥔장]==================================

숫자여서 숫자형을 설정했을지라도 부호설정을 잘해야한다.

=======================================


기존 데이터를 수정하는데 실패를 하여 로그를 확인하니....

MySQL Database Error: Out of range value for column 'num_1' at row 1

요런 에러가 발생을 했다.


어라? 숫자값을 넣었고... 그것도 크기가 벗어난 것도 아니고, 문자열이 들어간 것도 아닌데 저런 에러가 발생을 하나?

그래서 일단 검색을 해보니 숫자형인데 문자열을 넣은 것이라는 내용들만 나왔다.. 쩝...

테이블 정보를 다시 확인을 해봐야겠다는 생각에 해당 컬럼의 형태를 보니 int(10) unsigned 였다....

(1) 이라는 값에서 (-1) 이라는 값으로 수정을 해야 한데서 입력을 한 것인데 저런 에러가 나온다.

에러 메시지가 좀 난감하긴 했지만, 당연히 unsigned 때문에 발생을 한 것이니 테이블 정보를 수정을 해서 해결하자.


테스트....

create table zz_test_001 (

idx int(10) AUTO_INCREMENT not null,

num_1 int(10) unsigned not null,

primary key (idx)

) engine=InnoDB DEFAULT CHARSET=utf8;


insert into zz_test_001 (num_1) values (-1);

# Lookup Error - MySQL Database Error: Out of range value for column 'num_1' at row 1


alter table zz_test_001

  add column num_2 int(10)

;

insert into zz_test_001 (num_1,num_2) values (0,-1);

# OK - Why? num_1 type is int(10) unsigned and value is not negative. and num_2 type is int(10).


alter table zz_test_001

  change num_1 num_1 int(10) not null

;

insert into zz_test_001 (num_1,num_2) values (-1,-1);

# OK - Why? num_1 type is int(10). and num_2 type is int(10).