mysql - 主键更改后使用更新重构外键

标签 mysql primary-key

我们遇到了主键问题。它被设置为一个有意义的值以便于数据输入,因为所有数据最初都是直接添加的。但是现在有意义的值并不总是出现在所有条目中。所以现在我们正在转向一个自动生成的、无意义的 key 。但我必须更新数据库以反射(reflect)这一点。

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

是否有 UPDATE 语句遍历 parts 表并将 FK_product 设置为产品表中 id 的值,其中 serial = FK_serial?

最佳答案

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

关于mysql - 主键更改后使用更新重构外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284657/

相关文章:

python - 在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题

mysql - 使用c中的sendto函数发送mysql输出

php - 查询返回空

PHP 服务器 ping 似乎导致 502 错误

nhibernate - NHibernate-名称主键约束?

sql-server-2012 - SQL Server更改主键数据类型

postgresql - 允许冲突的 Postgres 主键

mysql - Update if exists else 插入,但具有非唯一列

orm - 主键 - native 、序列或 GUID 键?

c# - 在 Oracle DB 中获取正确的自动递增 ID