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    |                |
    +-------------------------+--------------+------+-----+---------+----------------+
  • 相关阅读:
    可视化工具Grafana:简介及安装
    数据采集工具Telegraf:简介及安装
    怒怼某些自媒体培训机构,吃相不要太难看了!!!
    时序数据库InfluxDB:简介及安装
    jmeter(二十五)linux环境运行jmeter并生成报告
    Linux:CentOS7.4新建用户并授权
    服务端监控工具:Nmon使用方法
    Locust:简介和基本用法
    Quant Finance Master’s Guide 2020
    数据科学入门前需要知道的10件事
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5524026.html
Copyright © 2011-2022 走看看