我们已经构建了一个以 MySQL 作为数据库的应用程序。每周我们从数据库中导出数据转储,并删除所有数据。现在我们想要将所有这些转储合并在一起以执行一些数据分析任务。
我们面临的问题是所有表的“id”字段都是自增的,所以它在所有数据转储中都是从1开始的,这导致表中有重复的ID。我相信一定有更好的方法来做到这一点,因为它应该是 MySQL 管理中的一项非常常见的任务。
最好的解决方法是什么?
最佳答案
如果您可以轻松识别您的外键字段(比如它们采用 *_id 形式),那么您可以使用您选择的脚本语言通过添加“id 空间偏移量”来修改转储文件中的主键和外键.
例如,假设您有两个转储文件并且您知道它们的主键范围不超过 1,000,000,您将第二个转储文件中的主键和外键递增 1,000,000。
实现起来并非易事,因为您必须检测语句中外键字段的位置,然后修改语句中其他位置相同列位置的值。
如果您的外键不容易通过通用命名约定识别,那么您必须为每个表保留单独的信息,以了解如何根据列位置找到它们的位置。
祝你好运。
关于mysql - 合并 2 个 MySQL 数据转储的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675798/