mysql - 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 - 不允许从触发器返回结果集
我以前从未使用过触发器,所以我不确定如何正确执行此操作。
解决方案
在评论和一些谷歌搜索的帮助下,我想出了这个解决方案......
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 来引用刚刚更新的记录中的值。无需尝试从数据库中“选择”...只需更新另一个表。
推荐阅读
- android-studio - 如何在 Firebase 的嵌套节点中获取特定数据
- python - 从 gmail 帐户获取附件的 Python 脚本
- python - Nvim: $VIRTUAL_ENV 存在但似乎处于非活动状态。这可能会导致意想不到的结果
- javascript - 突出显示并删除单击 javascript 时突出显示 div
- yocto - 覆盖 bbappend 文件中的 defconfig
- python - 如何在python中从Json响应中创建单独的列表
- applet - Java 卡 SIM 工具包小程序
- junit - 为了 PowerMockito,你如何混合 junit5 和 junit4?
- arrays - 如何将包含数组的 Swift 对象自定义编码为 JSON?
- java - 大约两个线程交替打印奇数和偶数