[英]Heroku and ClearDB MySQL Auto Increment
我将 ClearDB 用于 mysql 数据库。 我有一个带有自动递增主键的表。 问题是它不是增加1,而是增加10。请问我该如何解决这个问题?
此外,当我在本地主机上测试数据库时,增量工作正常。
MySQL 对此有一个配置选项: auto_increment_increment 。 在您的 ClearDB 主机上可以将选项设置为 10,但在本地主机上设置为 1。
在每个环境中检查它:
SELECT @@auto_increment_increment;
如果在 ClearDB 环境中设置为 10,您将不得不询问设置该环境的人为什么要这样配置。 可能有一个很好的理由。
不幸的是,它是一个全局设置,因此如果在服务器上设置它会影响该 MySQL 实例上所有数据库中的所有表。
您可以覆盖每个 session 的值,因此如果您希望您的应用程序使用与全局值不同的值,您可以在执行任何 INSERT 之前将其作为 SQL 查询执行:
SET auto_increment_increment = 1;
但这仅对当前的 session 生效,因此每次打开新的 session 时都必须这样做。
还要仔细检查这个相关选项,因为如果增量已更改,它通常会设置为非默认值:
SELECT @@auto_increment_offset;
ClearDB 将 auto_increment 值全局设置为 10 以促进它们执行的集群功能。 您不能覆盖它,即使在单租户集群上也是如此。 这始终是 10 的倍数。他们不会为您调整它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.