从引用 table 的 FK 更新 table 中的数据

update data in a table from a FK referenced table

我有两个 tables device_test_resultsdevices.

device_test_results
- id
- device_id (FK)
- brand
- model
- serial_number

devices
- id
- brand
- model
- serial_number

device_test_results 有一个外键 - device_id 引用 devices table

自从我使用此设置以来已经有一段时间了,从 device_test_resultsdevices.

有大量数据引用

我目前正试图摆脱这种依赖性,所以我在 device_test_results 中添加了 brand modelserial_number 列以复制所有现有信息从 devices table 然后删除此约束,以便这 2 table 变得独立。

有任何建议或寻找解决方案的地方吗?

您应该试试下面的方法。使用 SELECT 查询和 JOIN 与其他 table 获取所需数据,然后相应地执行 INSERT 操作。

INSERT INTO device_test_results (brand, model, serial_number) 
SELECT * FROM
(
SELECT d.brand, d.model, d.serial_number 
from devices d 
inner join device_test_results dtr on dtr.device_id = d.id
) tab

编辑:

然后使用 UPDATE 查询对其他 table 进行 JOIN 查询

UPDATE device_test_results AS dtr 
SET brand = d.brand
 model = d.model
 serial_number = d.serial_number
FROM devices AS d
WHERE dtr.device_id = d.id;