此问题涉及两个表:Register(eid,sid,价格,评分)和Event(eid,ename,edescription,edate,memprice,nonmemprice,maxpeople)。
我想创建一个用于监视注册的触发器,如果任何事件的注册数量超过该事件允许的最大人数的80%,我们将使该事件的非会员价格提高50%。
到目前为止,我有这样的事情
delimiter//
create trigger price_change
after insert on Register for each row begin
DECLARE counts INT;
DECLARE maxpeople INT;
set counts = (select count(sid) from Register
JOIN Event ON Register.eid = Event.eid
where eid = new.eid);
set maxpeople = (select maxpeople from Event where Event.eid =
new.eid);
if counts >= 0.8 * maxpeople
then
update Event set nonmemprice = nonmemprice * 1.5 where eid
= new.eid;
end if;
end//
delimiter;
我仍在学习如何编写触发器,最终得到了这个触发器。我试图将其添加到MySQL中,但它说在此触发器的各处基本上都存在语法错误。我真的很困惑如果有人帮助我,将不胜感激。
最佳答案
错误一开始就正确。之间使用空格:
delimiter //
^--------------here
在课程结束时:
delimiter ;
关于mysql - 为什么此mysql触发器语法错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52793896/