用于更新当前表中更新值的另一个表的MySQL触发器
问题描述:
我在mysql数据库中有两个表A和B.表A有brnd_id
,R_2000ml
。表B具有diff
,val
。当更新R_2000ml
时,我在写一个触发器来更新表B.我计算的NEW.R_2000ml
和OLD.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 ;
答
在你的if语句使用“< =>”,此运算符执行像=运算符的相等比较,所以你应该使用<>或=:
if NEW.`R_2000ml` <> OLD.`R_2000ml`
或
if NEW.`R_2000ml` != OLD.`R_2000ml`
+0
该解决方案适用于我。谢谢你,@Imanez。 – WASEEM
你的触发应该更新* *所有以'B'行。 。 。你的意图是? –
表B只包含一行,并将用于其他目的。 – WASEEM