我通过以下方式创建了一个视图:
CREATE VIEW product_prices
AS SELECT Name, Price
FROM Products;
我需要更新它,因此价格低于10英镑的价格比第3类价格低10%。这些需要在单独的SELECT语句中查找。
到目前为止,我已经获得了此代码,但是我收到1443错误,视图的定义不允许我更新它。如何使其成为可更新的视图?
UPDATE product_prices
SET Price = Price * 1.1
WHERE Name != (SELECT Name FROM Products WHERE Category_ID = 3)
AND Price < 10;
答案 0 :(得分:0)
使用join
代替<>
:
UPDATE product_prices pp LEFT JOIN
Products p
ON p.name = pp.anme and p.Category_ID = 3
SET pp.Price = pp.Price * 1.1
WHERE p.Name IS NULL AND pp.Price < 10;
问题是正在更新的表上的操作,而不是视图定义。