【问题标题】:Ruby on Rails workaround for the mySQL max int: 2147483647?Ruby on Rails 的 mySQL max int 解决方法:2147483647?
【发布时间】:2011-03-04 03:48:39
【问题描述】:

我正在尝试使用这个号码:

294670251400

这个数字将是模型中的一个属性,该模型会在会员卡上保持计数器标签。会员卡有三个四位数的梳妆台。

但是当我 update_attribute 包含它时,该数字被重置为 mySQL 的最大 int :

2147483647

有人有解决方法吗?

【问题讨论】:

    标签: mysql ruby-on-rails sqlite numbers


    【解决方案1】:

    在您的迁移中,您可以这样指定整数:

      t.integer :really_big_number, :limit => 8
    

    这是一个有用的blog post

    【讨论】:

      【解决方案2】:

      您是否在数据库中执行数学运算?您可以将其存储为字符串吗?还是 BIGINT?

      【讨论】:

      • 什么是 BIGINT?听起来很有趣。我不能将它存储为字符串,因为我需要对其执行增量。
      • 假设您在 ruby​​ 代码中进行递增,您绝对可以将其存储为字符串。然后递增将只是转换为浮点数或整数,加 1,再次转换为字符串。或者使用 BIGINT :)
      • 我假设将其保留为字符串会提高服务器性能?
      • 我想不出一个原因——BIGINT 是 8 个字节,而 VARCHAR(n) 是 n+1 个字节。
      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 2022-08-17
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      相关资源
      最近更新 更多