Если вы хотите, чтобы column_with_very_big_numerics
пришел к вам как NUMERIC
, не отбрасывайте его до int
.
Вы писали:
SELECT
column_with_very_big_numerics::int
FROM some_table;
Вместо этого, просто написать:
SELECT
column_with_very_big_numerics
FROM some_table;
The largest integer
(and largest bigint
) PostgreSQL can represent is in the documentation. Эти ограничения не относятся к numeric
, так как это другой тип.
Ваша клиентская библиотека должна понимать, как бороться с numeric
; иначе вы, вероятно, просто получите номер в виде строки. Вероятно, вам нужно найти произвольную точность десятичной плавающей запятой, чтобы работать с этими числами, если ваш язык программирования не поддерживает их изначально. Например. в Java вы используете BigDecimal
, встроенный тип; в Python вы используете модуль decimal
Python (автоматически поддерживается psycopg2, IIRC) и т. д. Я не использую Node.js, который звучит так, как будто вы используете, поэтому я не могу вам помочь.
Если pg
драйвер Node.js игровая не справляется с numeric
то либо (а) написать патч, чтобы исправить это, или (б) изменить схему, чтобы избежать numeric
, используя bigint
и (в случае необходимости для не целых) множители с фиксированной запятой.