2010-07-19 42 views
1

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

所以我的产品表有列序列(原始键)和Id(新PK)。我的零件表有2列FK_serial(旧FK)和FK_product(新FK,目前对于所有条目设置为0)。

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

回答

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