从引用 table 的 FK 更新 table 中的数据
update data in a table from a FK referenced table
我有两个 tables device_test_results
和 devices
.
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_results
到 devices
.
有大量数据引用
我目前正试图摆脱这种依赖性,所以我在 device_test_results
中添加了 brand
model
和 serial_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;
我有两个 tables device_test_results
和 devices
.
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_results
到 devices
.
我目前正试图摆脱这种依赖性,所以我在 device_test_results
中添加了 brand
model
和 serial_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;