用于更新当前表中更新值的另一个表的MySQL触发器

用于更新当前表中更新值的另一个表的MySQL触发器

问题描述:

我在mysql数据库中有两个表A和B.表A有brnd_id,R_2000ml。表B具有diff,val。当更新R_2000ml时,我在写一个触发器来更新表B.我计算的NEW.R_2000mlOLD.R_2000ml的差异,将结果存储在diff列,传递一个布尔值设为1,表B中的val列得到更新用于更新当前表中更新值的另一个表的MySQL触发器

下面是一个不工作作为我的触发器代码!值不表B中得到更新

DELIMITER // 
    DROP TRIGGER IF EXISTS `myTrigger`; 
    CREATE DEFINER=`root`@`localhost` TRIGGER `myTrigger` 
    AFTER UPDATE ON `A` 
    FOR EACH ROW 
    BEGIN 
     DECLARE brndid integer; 
     DECLARE stkdate date; 
     if NEW.`R_2000ml` <=> OLD.`R_2000ml` 
     THEN 
     if NEW.`R_2000ml` > OLD.`R_2000ml` 
     THEN 
      update B set diff= NEW.R_2000ml- OLD.R_2000ml,val=1; 
     END IF; 
     END IF; 
    END;// 
DELIMITER ; 
+0

你的触发应该更新* *所有以'B'行。 。 。你的意图是? –

+0

表B只包含一行,并将用于其他目的。 – WASEEM

在你的if语句使用“< =>”,此运算符执行像=运算符的相等比较,所以你应该使用<>或=:

if NEW.`R_2000ml` <> OLD.`R_2000ml` 

if NEW.`R_2000ml` != OLD.`R_2000ml` 
+0

该解决方案适用于我。谢谢你,@Imanez。 – WASEEM