更新PK值mysql

时间:2011-02-23 12:54:27

标签: php mysql

我有2个表,我希望更新articlesarticles_entities文章的PK为id,而articles_entities的FK article_id这两个字段都是char( 36)目前是UUID。我希望将这些字段转换为int(10)。

有没有办法可以用1个查询更新2个表并键入匹配的键?或者我是否必须编写一个脚本来浏览每篇文章并更新所有参考文献?

如果有帮助,我正在使用InnoDb。

1 个答案:

答案 0 :(得分:5)

两个步骤:

  1. 确保您的外键设置为“ON UPDATE CASCADE”,然后更新母表的ID字段,使其包含数字。 ON UPDATE CASCADE约束将使InnoDB在更新母亲时更新子表...如果你有很多行,请准备好这将非常慢。

  2. 将两列的类型更改为INT。您可能需要先删除外键并在之后重新创建。