Mysql Decimal 컬럼에 insert시 발생하는 Data truncation 오류 (Out of range value for column)
experience
- decimal(10, 2)에 특정 double형 data를 insert 시도시 아래와 같은 상황 발생.
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'column_name' at row 65at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3564)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
- 값이 1억보다 큰 data를 넣으려 할때 발생하는 듯...
* 대충 찾아보니, decimal 앞 10은 전체 자리수이고, 뒤에 2는 소수점 하위 자리수라는...
** 즉, 소수점 자리수가 2개를 차지하기 때문에 0보다 큰 정수부분은 8개만 허용이 된다는...
** 1억보다 큰 경우, 8개보다 더큰 number를 필요로 하기 때문에 발생하는 것으로 보임.
** 소수점 자리수도 3자리이상 자리수를 넣으려하면 같은 오류 발생가능한 듯...(?)
from : http://stackoverflow.com/questions/12057695/mysqldatatruncation-out-of-range-value-for-column
댓글
댓글 쓰기