MySQL:更改主键的ID

时间:2011-02-28 10:16:04

标签: mysql primary-key auto-increment

我需要合并来自2个不同模式的并行表。 它们实际上是相同的(某些字段不同),但ID(它们的PK)是不同的。

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

最好的方法是什么?

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

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

  • 有更好的方法吗?

此外, 这怎么会影响索引?

它还有其他任何重新发布吗? (除了外键和代码中的位置 - 如果存在 - 使用硬编码的ID值)

1 个答案:

答案 0 :(得分:0)

  1. 不要认为你有选择权。你必须生成新的ID。当您插入记录时,无论如何都会发生auto_increment。
  2. 您可以使用其他列引用,该引用可以使原始表键值返回跟踪。
  3. PK索引将被重新编入索引。
  4. 其他影响取决于您必须考虑的应用功能。