zoukankan      html  css  js  c++  java
  • change column to bigint

    今天存储数据的时候报错,发现是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 TINYINTMEDIUMINT, and BIGINT. The following table shows the required storage and range for each integer type.

    TypeStorageMinimum ValueMaximum 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    |                |
    +-------------------------+--------------+------+-----+---------+----------------+
  • 相关阅读:
    小老虎CSDN博客流量分析
    C#中字符串的内存分配与驻留池
    最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
    HDU 3037 Saving Beans(Lucas定理的直接应用)
    Linux中IRC通讯工具Pidgin的基本用法
    jQuery整理笔记八----jQuery的Ajax
    Android ServiceManager启动
    C++开源码项目汇总
    虚拟现实游戏的十大误区
    适用android的MVP:怎样组织展示层
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5524026.html
Copyright © 2011-2022 走看看