在主键更改后重写更新的外键

时间:2010-07-19 20:13:02

标签: mysql primary-key

我们遇到了主键问题。由于所有数据最初都是直接添加的,因此它被设置为有意义的数据输入值。但是现在所有条目中并不总是存在有意义的值。所以现在我们转向自动生成的,没有意义的密钥。但我必须更新数据库以反映这一点。

所以我的products表有列serial(原始键)和Id(新PK)。我的零件表有2列FK_serial(旧FK)和FK_product(新FK,当前所有条目都设置为0)。

是否有UPDATE语句将遍历parts表并将FK_product设置为products表中的Id = FK_serial?

1 个答案:

答案 0 :(得分:2)

UPDATE parts 
JOIN products
ON parts.FK_serial = products.serial
SET parts.FK_product = products.Id;