web-dev-qa-db-ja.com

Java BigDecimalを格納するために使用するPostgreSQL列タイプはどれですか?

Java BigDecimalを格納するためにどのPostgreSQL列タイプを使用する必要がありますか?

24
dajood

PostgreSQLデータ型 -おそらく 数値 を参照してください。これは任意精度型として機能します(これはPostgreSQL拡張機能です)。

...精度やスケールがないと、実装の精度の制限まで、任意の精度とスケールの数値を格納できる列が作成されます。

しかし、「精度の実装限界」とは何かはよくわかりません。 本当に大きな数を試したことがありません。制限に達した場合、textへのフォールバックが可能です。しかし、それまでに他にも重大な問題があると思います;-)格納数を減らしたい場合は、精度やスケールをnumericに指定してください。

編集sjrが指摘したように、制限は(同じリンクからの)小数点以下1000桁の精度です。

数値型は、[現在の実装では]最大1000桁の精度で数値を格納し、正確に計算を実行できます。正確さが要求される金額やその他の数量を保管する場合に特にお勧めします...

より多くの精度が必要な場合(手元にはるかに大きな問題があるにもかかわらず)、数値列は(それ自体では)適切ではありません。しかし、これは実際には非常に極端な「もしも」であり、制限的な役割を果たさない可能性があります。

24
user166390

一般的なSQLデータ型にはJavaマッピングを使用するだけです。この場合、NUMERICまたはDECIMALを使用できます。

6
Frank Heikens