Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在rails中输入更大的整数值(超过10位)_Mysql_Ruby On Rails_Ruby_Ruby On Rails 4_Activerecord - Fatal编程技术网

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)。