mysql中触发器问题,第一个触发器不能插入数据,但是删除第二个触发器后第一个触发器就可以插入数据

在license表上建立一个触发器,目的是领取证书后将student中的离校时间改为领取证书时间,并设置为结业DELIMITER&&CREATETRIGGERlicens... 在license表上建立一个触发器,目的是领取证书后将student中的离校时间改为领取证书时间,并设置为结业
DELIMITER &&
CREATE TRIGGER license_stu AFTER INSERT
ON license FOR EACH ROW
BEGIN
UPDATE student SET leave_time=NEW.receive_time,scondition= '结业'
WHERE sno=NEW.sno;
END
&&
DELIMITER ;

更新student中的姓名后相应更改license中的姓名
CREATE TRIGGER update_sname AFTER UPDATE
ON student FOR EACH ROW
BEGIN
UPDATE license SET sname=NEW.sname WHERE sno=NEW.sno;
END
展开
 我来答
wangzhiqing999
2013-04-21 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3326万
展开全部

触发器2  修改为:


CREATE TRIGGER update_sname AFTER UPDATE
ON student FOR EACH ROW
WHEN ( new.sname <> old.sname )
BEGIN
UPDATE license SET sname=NEW.sname WHERE sno=NEW.sno;
END




主要是增加一行

WHEN ( new.sname  <>  old.sname  )


这样你触发器一执行

UPDATE student SET leave_time=NEW.receive_time,scondition= '结业' 

WHERE sno=NEW.sno;


将不会触发到触发器二。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式