1

データ型 bigint の主キー uid を持つ users テーブルがあります。

uid = 100000349053153 のユーザーを追加しようとすると、「Minteger out of range」というエラーが表示される理由がわかりません。

これは機能するはずです(ドキュメントによると:http://www.postgresql.org/docs/8.3/static/datatype.html

4

2 に答える 2

2

ニコラスとアダムに感謝します。

この問題は、私の混乱した Rails の使用に関連していました。

rake db:reset が移行ファイルからデータベースを再作成すると考えるのは間違いでした。私は正しい移行ファイルを持っていましたが、rake db:reset は schema.rb によって提供された間違った情報を使用していました。

Facebook ID を保存する場合は、(移行内で) 以下を使用します。

t.integer :uid, :limit => 8

インデックスを追加することもできます:

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

また、Rails データベースを最初から再作成する場合は、次を使用します。

rake db:drop
rake db:create
rake db:migrate
于 2010-10-15T15:33:34.770 に答える
0

FWIW以下は私にとってはうまくいきます:

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

INSERT INTO bigintexample (id) VALUES (100000349053153);
于 2010-10-15T06:47:03.803 に答える