最近我将一个数据库迁移到PostgreSQL,它有一些列定义为numeric(9,3)
和numeric(9,4)
。在测试应用程序时,我发现当数据保存到这些列时,会在插入的值中添加尾随零。我正在使用Hibernate,并且我的日志显示正在为预准备语句构建的正确值。PostgreSQL将尾随零添加到数字
我在插入数据的一个例子是0.75在numeric(9,3)
列和存储的值是0.750 。 numeric(9,4)
列的另一个示例:我插入值并且DB保存着12.0000。
我发现这个相关的问题:postgresql numeric type without trailing zeros。但是它并没有提供一个解决方案,而是引用9.x文档说没有添加尾随零。从这个问题,答案引用文档(我也看过)对此表示:
数字值的物理存储没有任何额外的领先或 尾随零。因此,列 的声明精度和比例是最大值,而不是固定分配。
但是,就像那个问题的海报,我看到尾随的零被添加。由Hibernate在日志中生成的原始插入不会显示此额外行李。所以我认为这是一个PostgreSQL的东西,我没有正确设置,我只是无法找到我错了。
什么是您看到零的客户端?你有没有尝试psql? –
这是一个网络应用程序,我使用Firefox作为我的浏览器。 App Server使用Hibernate在Java中。带有尾部零的“修改”值在实际的DB记录中可见(并且在查询时以这种方式返回到客户端)。 – verbyk1924
您在实际DB记录_中用_visible表示什么意思?客户向你展示什么?我已经问过,你没有回答:你有没有试过psql? –