带有INNER JOIN和子查询的MySQL触发器

时间:2014-05-07 17:09:45

标签: mysql sql triggers subquery

我正在使用以下3个表:

enter image description here

我正在尝试创建一个执行以下操作的触发器:如果笔记本电脑的价格增加了任何数量,那么该笔记本电脑制造商生产的每台PC的价格就会降低5倍。

我正在使用连接和子查询来选择正确的制造商。 看起来对我好,但显然不是。当我创建查询时,它输入正常但是当我更新并增加笔记本电脑的价格时,相关电脑的价格不会降低5。

这是我对触发器的最佳尝试:

DELIMITER $$
CREATE TRIGGER price_update AFTER UPDATE
ON laptop
FOR EACH ROW
BEGIN
    IF(NEW.price > OLD.price)
    THEN 
    UPDATE pc
    INNER JOIN product
    ON product.model = pc.model
    SET price = price - 5
    WHERE product.maker IN (SELECT maker
                            FROM product
                            WHERE model = NEW.model);
    END IF;
    END;
$$  

请原谅我对MySQL不熟悉的任何无知。任何建议都非常感激。

编辑:感觉很蠢!它工作正常。我正在检查pc表中的错误模型。

0 个答案:

没有答案