PostgreSql Ошибка целого числа вне диапазона при вставке небольших чисел в целочисленные поля - PullRequest
4 голосов
/ 30 сентября 2011

Я получаю сообщение об ошибке «целое число вне диапазона» в postgres, хотя ни одно из введенных чисел не является «большим».Их намного меньше миллиона.Запрос генерируется с помощью Django ORM и выглядит довольно стандартно.Есть идеи, что мне здесь не хватает?Спасибо!

# INSERT INTO "index_index" ("word_id", "ad_id", "field", "position", "created_at") VALUES (98036, 703906, E'y.x', 0, E'2011-09-29 22:02:40.252332') RETURNING "index_index"."id";
ERROR:  integer out of range

# \d index_index;

Table "public.index_index"
   Column   |           Type           |                        Modifiers                         
------------+--------------------------+----------------------------------------------------------
 id         | integer                  | not null default nextval('index_index_id_seq'::regclass)
 word_id    | integer                  | not null
 ad_id      | integer                  | not null
 field      | character varying(50)    | not null
 position   | integer                  | not null
 created_at | timestamp with time zone | not null
Indexes:
    "index_index_pkey" PRIMARY KEY, btree (id)
    "index_index_ad_id" btree (ad_id)
    "index_index_word_id" btree (word_id)
Foreign-key constraints:
    "index_index_ad_id_fkey" FOREIGN KEY (ad_id) REFERENCES campaigns_ad(id) DEFERRABLE INITIALLY DEFERRED
    "index_index_word_id_fkey" FOREIGN KEY (word_id) REFERENCES index_word(id) DEFERRABLE INITIALLY DEFERRED

1 Ответ

8 голосов
/ 30 сентября 2011

Возможно, последовательность превысила макс.значение для целого числа (2147483647).Поскольку последовательность основана на bigint, это возможно.

Вы можете проверить это, используя SELECT nextval('index_index_id_seq')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...