mysql使用触发器基于另一个表更新列

jtw3ybtb  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(341)

我现在有这个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-不允许从触发器返回结果集

我从来没有使用过触发器,所以我不知道如何正确地做到这一点。

u2nhd7ah

u2nhd7ah1#

在评论和一些谷歌搜索的帮助下,我想出了这个解决方案。。。

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来引用刚刚更新的记录中的值。不需要尝试和“选择”从数据库。。。只需更新另一个表。

相关问题