我有一个主/从MySQL设置我写的数据。有一个问题,我不得不暂时写入另一个数据库设置24小时。现在,我想将临时存储中的这些统计信息带入主/从设置。
这些表每个都使用递增ID作为键。有没有办法加载统计数据而不覆盖两个相似的ID,然后重新处理递增ID列,以便数字再次一致和增量?
答案 0 :(得分:1)
根据您的具体情况,一个选项可能是运行类似:
UPDATE [table] SET id=id+[number of records in backup table] WHERE id>=[first duplicate id] ORDER BY id DESC`
主/从数据库上的在id序列中创建一个间隙,然后当你从备份中插入记录时,它们将填补空白,并且id将按顺序并按正确的日期顺序排列。
显然,您必须小心在每个表的查询中使用正确的数字,并确保更新使用这些ID作为外键的任何表。我强烈建议先备份这个机动。
答案 1 :(得分:1)
最简单的解决方案:将主服务器上表格的自动增量重新定位到current value + number of rows in your temp storage
。这需要在您的日志记录应用程序关闭时完成,否则它将变得混乱。这是在几分钟内完成的。您可以重新启动应用。
然后,将temp db上的第一个id和master上的自动增量的旧值添加到temp db上的id之间。
最后,只需将temp数据库中的数据插入到master上的表中,就完成了!