使用触发器基于基于另一个表的MySQL Update列

时间:2018-10-25 18:17:57

标签: mysql

我目前有这个mySQL代码...

DELIMITER $$
CREATE TRIGGER after_ChairData_update 
    AFTER UPDATE ON ChairData
    FOR EACH ROW 
BEGIN

SELECT * FROM ProductionTimes as PT;
UPDATE ChairData SET Labour=`PT.Cut`+`PT.Sew`+`PT.UPH`+`PT.QC/Pack`;

END$$
DELIMITER ;

...但是我在phyMyAdmin中收到此错误...

#1415-不允许从触发器返回结果集

我以前从未使用过触发器,所以我不确定如何正确执行此操作。

1 个答案:

答案 0 :(得分:1)

借助有关的评论以及一些对此进行扩展的Google搜索,我想出了这个解决方案...

DELIMITER $$
CREATE TRIGGER after_ProductionTimes_update 
    AFTER UPDATE ON ProductionTimes
    FOR EACH ROW 
BEGIN

UPDATE ChairData SET Labour=NEW.Cut+New.Sew+NEW.UPH+NEW.`QC/Pack` WHERE `Style`=NEW.Style;

END$$
DELIMITER ;

我不知道的是,您可以使用NEW来引用刚刚更新的记录中的值。无需尝试从数据库中“选择” ...只需更新其他表即可。