Я пытаюсь вставить данные в таблицу PostgreSQL, используя вложенный оператор SQL. Я обнаружил, что мои вставки работают с небольшими (несколько тысяч) строками, возвращаемыми из вложенного запроса. Например, когда я пытаюсь:
insert into the_target_table (a_few_columns, average_metric)
SELECT a_few_columns, AVG(a_metric)
FROM a table
GROUP BY a_few_columns LIMIT 5000)
Однако этот же запрос завершается неудачно, когда я удаляю свой LIMIT
(внутренний запрос без ограничения возвращает около 30000 строк):
ОШИБКА: целое число вне диапазона
a_metric
- это двойная точность, а a_few_columns
- текст. Я поиграл со строками LIMIT, и кажется, что число строк, которые он может вставить без ошибки, составляет 14 000. Я не знаю, является ли это недетерминированным или постоянным пороговым значением до появления ошибки.
Я просмотрел несколько других сообщений SO по этой теме, , включая эту , и изменил тип данных первичного ключа моей таблицы на BIGINT
. Я все еще получаю ту же ошибку. Однако я не думаю, что это проблема с переполнением чисел, поскольку число вставок, которые я делаю, мало и даже близко не достигает порога.
У кого-нибудь есть какие-либо подсказки, что вызывает эту ошибку?