PostgreSQL 타입과 관련하여

이얏호·2023년 8월 21일
0

PostgreSQL을 사용하여 팀 프로젝트를 진행 중인데,
수량에 대한 칼럼을 bigint타입으로 DB에 entity를 지정하고 값을 넣었다.
디비버에서도 number 타입으로 지정된 것을 확인할 수 있었는데,

bulkUpdate를 하는 과정에서 예를 들어 20개에 5를 더해줬는데,
205로 저장되었다.

확인을 해보니 find로 찾아오는 부분에서 프라이머리 키로 지정한 id값은 number로 반환이 되는데, 수량값은 number가 아닌 string값으로 반환되는 것을 확인 할 수 있었다.

몇 번을 확인해도 entity와 DB값에 문제가 있지는 않았다.
(타입이 분명하게 bigint였고, DB값도 숫자로 들어가있었다.)

MySQL을 사용할 때는 이러한 경우가 없었던 걸로 기억하는데,
이상하게 자꾸 string값으로 반환되어 매우 당황스러웠다...

하여 관련 자료를 찾아봤는데,
PostgreSQL의 경우, 큰 수가 반환될 때, 표기가 되지 않는 것을 방지하기 위해
bigint 타입의 경우, string으로 반환한다는 내용이 존재했다.

아래는 여러 자료형들의 반환 값이다.

smallint: parseInt()
integer: paseInt()
bigint: string
decimal: string
nemeric: string
real: paseFloat()
double precision: paseFloat()
smallserial: parseInt()
serial: parseInt()
bigserial: string

그래서 타입을 bigint에서 integer로 바꿔주었고,
정상적으로 number 타입으로 반환되는 것을 확인할 수 있었다.

profile
열심히 신나게 화이팅!

0개의 댓글