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    |                |
    +-------------------------+--------------+------+-----+---------+----------------+
  • 相关阅读:
    springcloud 入门 11 (Hystrix Dashboard)
    springcloud 入门 10 (eureka高可用)
    springcloud 入门 9 (消息总线)
    springboot 学习之路 20 (整合RabbitMQ)
    springcloud 入门 8 (config配置中心)
    springcloud 入门 7 (zuul路由网关)
    springcloud 入门 6 (断路器hystrix)
    springcloud 入门 5 (feign源码分析)
    springcloud 入门 4 (rebbon源码解读)
    Java实现多线程下载 URL以及URLConnection
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5524026.html
Copyright © 2011-2022 走看看