今天存储数据的时候报错,发现是3435065640超出了常规int的存储长度,
RangeError (3435065640 is out of range for ActiveRecord::Type::Integer with limit 4)
$ bundle exec rails db -p
mysql> desc recommended_videos; +-------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | video_id | varchar(255) | YES | | | | | res_desc | text | YES | | NULL | | | state | int(11) | YES | | 0 | | | created_at | datetime | YES | | NULL | | | +-------------------------+--------------+------+-----+---------+----------------+
http://dev.mysql.com/doc/refman/5.7/en/integer-types.html
12.2.1 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
MySQL supports the SQL standard integer types INTEGER (or INT) and SMALLINT. As an extension to the standard, MySQL also supports the integer
types TINYINT, MEDIUMINT, and BIGINT. The following table shows the required storage and range for each integer type.
| Type | Storage | Minimum Value | Maximum Value |
|---|---|---|---|
| (Bytes) | (Signed/Unsigned) | (Signed/Unsigned) | |
TINYINT | 1 |
-128 |
127 |
0 |
255 | ||
SMALLINT | 2 |
-32768 |
32767 |
0 |
65535 | ||
MEDIUMINT | 3 |
-8388608 |
8388607 |
0 |
16777215 | ||
INT | 4 |
-2147483648 |
2147483647 |
0 |
4294967295 | ||
BIGINT | 8 |
-9223372036854775808 |
9223372036854775807 |
0 |
18446744073709551615 |
int的存储上限是2147483647,
所以change_column
class ChangeTotalVvTypeToRecommendedVideos < ActiveRecord::Migration def change change_column :recommended_videos, :total_vv, :integer, :limit => 8 end end
mysql> desc recommended_videos; +-------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | state | int(11) | YES | | 0 | | | sequence | int(11) | YES | | 1 | | | created_at | datetime | YES | | NULL | | | updated_at | datetime | YES | | NULL | | | total_vv | bigint(20) | YES | | NULL | | +-------------------------+--------------+------+-----+---------+----------------+
2768

被折叠的 条评论
为什么被折叠?



