将数据从mysql视图插入不存在的表

时间:2016-02-29 21:09:22

标签: mysql sql view

在视图中填充新数据时,表格不会更新。查询运行时没有错误,但表未更新。我尝试使用来自视图中的数据(根据发货ID)更新表格。

INSERT INTO `table`(`store`, `shippingid`)
SELECT store,shipment_id FROM view WHERE NOT EXISTS (SELECT `shippingid` FROM `table`)

2 个答案:

答案 0 :(得分:1)

您必须在视图和表格之间包含相关性:

INSERT INTO `table`(`store`, `shippingid`)
SELECT store,shipment_id 
FROM view 
WHERE NOT EXISTS (SELECT `shippingid` 
                  FROM `table` 
                  WHERE shippingid = view.shipment_id)

请注意,此查询是INSERT操作,而不是UPDATE

答案 1 :(得分:0)

如果你的表中有任何行,这将总是错误的:

WHERE NOT EXISTS (SELECT `shippingid` FROM `table`)

似乎您可能需要添加相关性:

WHERE NOT EXISTS (SELECT `shippingid` FROM `table` WHERE shippingid = view.shipment_id)

请注意,理论上,子查询对外部查询的每一行都执行一次。因此,要了解流程..获取一些示例数据并了解查询将如何产生结果。