1

我有一个用户表,其主键 uid 的数据类型为 bigint。

我不明白为什么在尝试添加 uid = 100000349053153 的用户时出现错误:“Minteger 超出范围”。

这应该有效(根据文档: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 回答