Недавно я перенесла DB в PostgreSQL, который имеет несколько столбцов, которые определены как numeric(9,3)
и numeric(9,4)
. При тестировании приложения я обнаружил, что когда данные сохраняются в этих столбцах, к вставленному значению добавляются нулевые нули. Я использую Hibernate, и мои журналы показывают правильные значения, которые создаются для подготовленных операторов.PostgreSQL добавляет конечные нули в числовые
Пример данных Я вставка является 0.75 в numeric(9,3)
колонки, и значение, которое хранится в 0,750. Другой пример для столбца numeric(9,4)
: Я вставляю значение и БД держится 12.0000.
Я нашел этот родственный вопрос: postgresql numeric type without trailing zeros. Но он не предлагал решения, кроме того, чтобы процитировать документацию 9.x о том, что конечные нули не добавляются. С этим вопросом, ответ привел документы (которые я также читал), который сказал:
Числовых значения физически хранятся без какого-либо дополнительного ведущего или конечных нулей. Таким образом, заявленная точность и масштаб столбца являются максимумами, а не фиксированными распределениями.
Однако, как и этот вопрос, я вижу добавление нужных нулей. Необработанная вставка, сгенерированная Hibernate в журналах, не показывает этот дополнительный багаж. Поэтому я предполагаю, что это сообщение PostgreSQL, которое я не установил правильно, я просто не могу найти, как я ошибался.
Каков клиент, где вы видите нули? Вы пытались psql? –
Это веб-приложение, и я использую Firefox в качестве своего браузера. Сервер приложений находится на Java, используя Hibernate. «Измененные» значения с конечными нулями видны в фактических записях БД (и возвращаются к клиенту при запросе). – verbyk1924
Что вы подразумеваете под _visible в фактических записях БД? Что клиент показывает вам? Я уже спросил, и вы не ответили: вы попробовали psql? –