如何在 MYSQL 中更新/使视图可更新

How to update/ make a view updatable in MYSQL

我通过以下方式创建了视图:

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;

使用 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;

问题是正在更新的 table 上的操作,而不是视图定义。