Бигинт на PostgreSQL 8.3 - PullRequest
       36

Бигинт на PostgreSQL 8.3

1 голос
/ 15 октября 2010

У меня есть таблица пользователей с UID первичного ключа типа данных bigint.

Я не понимаю, почему я получаю ошибку: "Minteger вне диапазона" при попытке добавить пользователя с uid = 100000349053153.

Это должно работать (в соответствии с документом: http://www.postgresql.org/docs/8.3/static/datatype.html)

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

Спасибо Николасу и Адаму.

Проблема была связана с моим запутанным использованием Rails.

Я ошибался, полагая, что rake db: reset воссоздает базу данных из файлов миграции.У меня были правильные файлы миграции, но rake db: reset использовал неверную информацию, предоставленную schema.rb

Если вы хотите сохранить идентификатор Facebook, используйте (внутри ваших миграций):

t.integer :uid, :limit => 8

Вы также можете добавить индекс:

add_index :users, :uid, :unique => true

И если вы хотите воссоздать базу данных Rails с нуля, используйте:

rake db:drop
rake db:create
rake db:migrate
0 голосов
/ 15 октября 2010

FWIW у меня отлично работает следующее:

CREATE TABLE bigintexample
(
  id bigint,
  CONSTRAINT pk_bigintexample_id PRIMARY KEY (id)
);

INSERT INTO bigintexample (id) VALUES (100000349053153);
...