我应该使用哪种PostgreSQL列类型来存储Java BigDecimal?

推荐答案

请参阅PostgreSQL datatypes-Numeric,它可以充当arbitrary precision type(这是一个PostgreSQL扩展).

...如果没有任何精度或比例,则会创建一列,其中可以存储任何精度和比例的数值,最高可达精度的实现限制.

不过,我并不完全确定"精度的实现限制"是什么.从未try 过really个大数字.如果达到限制,则有可能回落到text.但是,我怀疑在此之前还会有其他重大问题;-)如果希望存储更少,请将精度和/或比例指定为numeric.

Edit正如sjr指出的,限制为Edit0位小数精度(来自同一链接):

numeric类型可以[在currentl实现中]存储高达1000位精度的数字,并精确执行计算.特别推荐用于存储货币数量和其他需要精确的数量...

如果需要more精度——尽管手头有一个更大的问题——那么数字列(本身)就不合适.但这实际上更像是一个非常简单的"假设",可能不会起到限制作用.

Postgresql相关问答推荐

包含JSONB属性的过滤器的索引策略

至少 pgRouting 的某些部分可以与并行查询并行运行吗?

使用 select 在带有特殊字符的字符串中查找数据

为什么 postgresql 可以在这个查询中高效地使用索引?

MERGE 语句的锁定级别

Windows上的psql:错误:编码UTF8的字节序列无效:0xc8 0x20

PostgreSQL错误致命:角色 username不存在

postgresql中的外键可以被触发器违反

如何在 psycopg2 中使用服务器端游标

如何检索 PostgreSQL 数据库的 comments ?

在 PostgreSQL 中将时间转换为秒

SQL数据库表中的多态性?

如果 PostgreSQL 数据库中存在,则删除表

在PostgreSQL中 Select 数组列的总和

Rails 验证数组中的值

manage.py 迁移时必须是关系 django_site 的所有者

你如何在postgresql中做mysqldump?

如何将主键添加到视图?

python postgres 我可以 fetchall() 100 万行吗?

在 OS X 上使用 Postgres.app 时如何将 psql 放在路径上?