Какой тип столбца PostgreSQL следует использовать для хранения Java BigDecimal? - PullRequest
16 голосов
/ 10 января 2011

Какой тип столбца PostgreSQL следует использовать для хранения Java BigDecimal?

Ответы [ 2 ]

18 голосов
/ 10 января 2011

См. Типы данных PostgreSQL - возможно, Числовой , который может действовать как тип произвольной точности (это расширение PostgreSQL).

... без какой-либо точности или масштаба создает столбец, в котором могут храниться числовые значения любой точности и масштаба, вплоть до предела реализации по точности.

Однако я не совсем уверен, что такое «предел точности реализации».Никогда не пробовал действительно больших чисел.Если предел достигнут, возможен откат до text.Но я подозреваю, что до этого будут и другие существенные проблемы ;-) Если вы хотите сохранить меньше, укажите точность и / или масштаб в numeric.

Редактируйте как sjrУказано, что ограничение составляет 1000 десятичных цифр точности (из той же ссылки):

Тип numeric может хранить числа с точностью до 1000 цифр [в текущих реализациях] и выполнятьрасчеты точно.Особенно рекомендуется для хранения денежных сумм и других количеств, где требуется точность ...

Если требуется больше точность - несмотря на то, что под рукой гораздо большие проблемы- тогда числовой столбец не подойдет (сам по себе).Но на самом деле это скорее очень крайнее «что если» и, вероятно, не играет ограничивающей роли.

4 голосов
/ 10 января 2011

Просто используйте сопоставления Java для общих типов данных SQL.В этом случае вы можете использовать ЦИФРОВОЙ или ДЕСЯТИЧНЫЙ.

...