【发布时间】:2011-04-05 11:11:26
【问题描述】:
可以通过以下方式设置/重置 MySQL 表的 AUTO_INCREMENT 值
ALTER TABLE some_table AUTO_INCREMENT = 1000
但是我需要在其现有值上设置AUTO_INCREMENT(以修复 M-M 复制),例如:
ALTER TABLE some_table SET AUTO_INCREMENT = AUTO_INCREMENT + 1 不工作
实际上,我想对数据库中的所有表运行此查询。但实际上这并不是很关键。
除了手动运行查询外,我找不到解决此问题的方法。请您提出一些建议或指出一些想法。
谢谢
【问题讨论】:
-
这也不好用:
ALTER TABLE my_db.customer auto_increment = ( SELECT auto_increment FROM information_schema.tables WHERE table_name = 'customer' ) -
既然您提到了 M-M 复制:真的需要触摸 AUTO_INCREMENT 以使复制工作吗?我通常只是在 my.cnf 中设置 auto-increment-increment 和 auto-increment-offset 值。
-
@faxi05 是的,你是对的。我也有相同的配置,它工作正常。但是为了在硬件故障后重新同步两个数据库,我不得不从一个数据库中转储所有内容并将其导入另一个数据库。在这个过程中出现了一些错误。令人惊讶的是,他们没有我做任何事情就走了。
标签: mysql replication