Mysql 如何在rails中输入更大的整数值(超过10位)
我创建了一个像Mysql 如何在rails中输入更大的整数值(超过10位),mysql,ruby-on-rails,ruby,ruby-on-rails-4,activerecord,Mysql,Ruby On Rails,Ruby,Ruby On Rails 4,Activerecord,我创建了一个像 rails g model Office name:string location:string phone_no:integer 然后,如果我给电话号码加上10位数的值,它会显示一个错误,比如 ActiveRecord::语句无效:Mysql2::错误:列的值超出范围 我怎么能给出超过10个数字 那么我该如何克服这一点 整数(4字节)具有最大值范围: -2147483648 -> 2147483647 0 -> 4294967295 (unsigned )
rails g model Office name:string location:string phone_no:integer
然后,如果我给电话号码加上10位数的值,它会显示一个错误,比如
ActiveRecord::语句无效:Mysql2::错误:列的值超出范围
我怎么能给出超过10个数字
那么我该如何克服这一点 整数(4字节)具有最大值范围:
-2147483648 -> 2147483647
0 -> 4294967295 (unsigned )
由于溢出,您将收到此错误。你可以改为使用,它有8个字节,你会没事的
-9223372036854775808 -> 9223372036854775807
0 -> 18446744073709551615 (unsigned)
整数(4字节)具有最大值范围:
-2147483648 -> 2147483647
0 -> 4294967295 (unsigned )
由于溢出,您将收到此错误。你可以改为使用,它有8个字节,你会没事的
-9223372036854775808 -> 9223372036854775807
0 -> 18446744073709551615 (unsigned)
如果您使用的是
mysql
,那么您可以像这样使用bigint
:
change_column :user, :mobile, :int8, :limit => 8
此限制=>8
将使其变大
希望这有帮助。如果您使用的是
mysql
,那么您可以像这样使用bigint
:
change_column :user, :mobile, :int8, :limit => 8
此限制=>8
将使其变大
希望这能有所帮助。我一直在数据库中使用
字符串
键入列来保存电话号码。如果出于某种原因需要一个int值,但我通常不需要,那么您可以随时调用.to\u i
优点是您可以在表单字段中使用+
字符来定义区号
缺点是您可能需要验证表单中字段的数字性。我一直使用数据库中的
字符串
键入列来保存电话号码。如果出于某种原因需要一个int值,但我通常不需要,那么您可以随时调用.to\u i
优点是您可以在表单字段中使用+
字符来定义区号
缺点是您可能需要验证表单中字段的数字性。也适用于前导“0”和类似的+1,因为这是电话号码或具有数字的其他类型数据的最佳做法,但实际上并没有用于某种计算。我同意电话号码在概念上是一个字符串,刚好包含数字,应该用数字来表示。也适用于前导“0”和类似的+1,因为这是电话号码或其他类型的数据的最佳做法,但实际上并没有用于某种计算。我同意电话号码在概念上是一个恰好包含数字的字符串,应该这样表示。我使用“change\u column:model,:col,:double”。这适用于MySQL数据库(但我希望项目使用postgres)。这可以在MySQL数据库上运行(但我希望该项目使用postgres)。