2011-02-28 90 views
1

我需要合并来自2个不同模式的并行表。 他们实际上是相同的(有些领域是不同的),但身份证(他们的PK)是不同的。MySQL:更改主键的ID

我需要符合一个表来包含并行行的相同ID。 (两个表格在合并后继续生存,一个根据ID与另一个同步)

什么是最好的方式去做呢?

  • 根据第二个表重命名第一个表的ID,然后更改PK的auto_increment值?

  • 使用正确的ID插入所需值并创建临时表,然后删除原始文件并重命名临时文件?

  • 有没有更好的方法?

此外, 这会如何影响索引?

它有没有其他的反应? (除了foreign_keys和代码中的地方 - 如果存在 - 使用硬编码的ID值)

回答

0
  1. 不要以为你有选项。你必须生成新的ID。当你插入记录时,auto_increment会反正发生。
  2. 您可以有一个额外的列引用,它可以使原始表键值返回跟踪。
  3. PK索引将被重新索引。

其他影响取决于您必须考虑的应用程序功能。