【问题标题】:Heroku and ClearDB MySQL Auto IncrementHeroku 和 ClearDB MySQL 自动增量
【发布时间】:2021-01-26 17:52:36
【问题描述】:

我将 ClearDB 用于 mysql 数据库。我有一个带有自动递增主键的表。问题是它不是递增 1,而是递增 10。请问我该如何解决这个问题?

此外,当我在本地主机上测试数据库时,增量工作正常。

【问题讨论】:

    标签: mysql heroku cleardb


    【解决方案1】:

    MySQL 对此有一个配置选项:auto_increment_increment。可以在 ClearDB 主机上将选项设置为 10,但在本地主机上设置为 1。

    在每个环境中检查它:

    SELECT @@auto_increment_increment;
    

    如果在 ClearDB 环境中设置为 10,您必须询问设置该环境的人为什么要这样配置。可能有充分的理由。

    不幸的是,它是一个全局设置,所以如果它设置在服务器上,它会影响该 MySQL 实例上所有数据库中的所有表。

    您可以覆盖每个会话的值,因此如果您希望您的应用使用与全局值不同的值,您可以在执行任何 INSERT 之前将其作为 SQL 查询执行:

    SET auto_increment_increment = 1;
    

    但这仅对当前会话生效,因此每次打开新会话时都必须这样做。

    还要仔细检查这个相关选项,因为如果增量已更改,它通常会设置为非默认值:

    SELECT @@auto_increment_offset;
    

    【讨论】:

      【解决方案2】:

      ClearDB 将 auto_increment 值全局设置为 10,以促进它们执行的集群功能。你不能覆盖这个!即使在单租户集群上,这始终是 10 的倍数。他们不会为您调整。

      【讨论】:

        猜你喜欢
        • 2013-10-12
        • 2012-12-14
        • 2020-09-12
        • 1970-01-01
        • 2017-06-22
        • 1970-01-01
        • 2016-07-05
        • 1970-01-01
        相关资源
        最近更新 更多