【问题标题】:ClearDB auto-incrementClearDB 自动增量
【发布时间】:2013-10-12 20:17:41
【问题描述】:

我正在使用 ClearDB 来托管我的 Ruby on Rails 应用程序的 MySQL 数据库。今天我观察到表格的 id 以 10 为步长,从 1 开始:1、11、21、31、41.. 我搜索,发现:

“我猜你的 auto_increment_increment 由于复制而被设置为 1 以外的值。对于复制的表,由于潜在的键冲突,不能使用 1。”

在 ClearDB 论坛上,我找到了相同的答案.. 好的,但问题是:如果 id 从 10 到 10 跳跃,它不会非常快地达到 11 位的整数限制吗?如果发生这种情况会怎样? id 去 2, 12, 22, 32, 42,从 2 开始,然后在 3..??

请问这里使用 ClearDB 的人可以回答我吗?

【问题讨论】:

标签: mysql ruby-on-rails database heroku cleardb


【解决方案1】:

ID 不会环绕它会与其领导者到领导者的复制方案冲突。

它确实缩短了 ID 序列,但只缩短了一位。如果您的行数超过 9,999,999,999,那么 ClearBD 不适合您。因为您将在行限制之前达到许多其他限制。

【讨论】:

  • 在 INSERT 之后添加一些 UPDATE 语句,改变 row_id = row_id - 10 怎么样? :)
  • 创建后无法更改唯一id,实现是为了在ClearDB系统内部为数据库复制和管理保留第一位。
  • 我知道。您无法更改唯一 ID,但可以更改插入语句后的值。我这样做是为了更容易管理。
【解决方案2】:

要克服这个问题,你必须升级计划,提供的用户不能更改环境变量auto_increment。升级到超级计划后,用户可以拥有所有的 DBA 权限。升级后运行下面的查询

ALTER TABLE table_name AUTO_INCREMENT = start_value;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2022-01-06
    • 2010-10-21
    • 2014-02-21
    • 2021-07-22
    • 2015-09-19
    相关资源
    最近更新 更多