MYSQL数据出发器的问题

各位大神:好!我写了一个MYSQL触发器,但是MYSQL数据库没有回应和执行,想了很多办法都没有解决。都快崩溃了,请大家指导一下。感谢!

 

DELIMITER $$

USE `esysdata`$$

DROP TRIGGER /*!50032 IF EXISTS */ `tri_sendorder2021004`$$

CREATE
    /*!50017 DEFINER = 'admin123'@'%' */
    TRIGGER `tri_sendorder2021004` AFTER INSERT ON `t_cy_sendstockentry` 
    FOR EACH ROW BEGIN 
DECLARE c VARCHAR(40) ;
DECLARE v INT;
SET c='';
SET c=(SELECT FFileName FROM  t_cy_order WHERE fbillno=new.frelatebillno);
IF ISNULL(c)|| LENGTH(TRIM(c))<1 THEN
SET v = 1/0;
END IF;
END;
$$

DELIMITER ;

 

t_cy_sendstockentry触发器有什么问题呢?先描述一下。

老师:你好!监听表`t_cy_sendstockentry`进行了 INSERT操作之后,`tri_sendorder2021004`没有执行对应操作。谢谢

老师:您好!‘建立外键关系’是指什么,感谢!另外,这个触发器的用途主要是当供应商在做发货单时,判断对应的采购订单表't_cy_order' 是否上传了订单附件(对应字段'FFileName'),条件是采购订单表't_cy_order'的字段'fbillno'等于新增送货单字段'frelatebillno',如果没有上传订单附件(即:字段'FFileName'为空值),则执行一个异常操作(SET v = 1/0;)实现数据回滚,也就是不让供应商不能做发货单。我担心是我写的触发器的语句有问题。谢谢!

老师:你好!执行这个异常操作(SET v = 1/0;)是为了实现数据回滚,但是在系统中实际上是已经生成了对应的发货单据了,而按照预想的逻辑系统是不会生成发货单的

老师:你好!实际上数据没有回滚,发货单也已经生成了。SELECT c=FFileName FROM t_cy_order WHERE fbillno=new.frelatebillno 这个语句作用是先查询到采购订单表't_cy_order'中的订单附件名称字段'FFileName'并放到变量'c'中,条件是采购订单表't_cy_order'的字段'fbillno'等于新增送货单字段'frelatebillno';这个语句我是参照网上找到的资料来写的,应该是有问题,请教老师要怎么样来写。谢谢!

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

各位大神:问题还没有解决,请再指导一下。感谢!

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

赖老师:请再指导一下,感谢!