为什么此mysql触发器语法错误?

时间:2018-10-13 14:20:36

标签: mysql database-trigger

此问题涉及两个表:Register(eid,sid,价格,评分)和Event(eid,ename,edescription,edate,memprice,nonmemprice,maxpeople)。

我想创建一个用于监视注册的触发器,如果​​任何事件的注册数量超过该事件所允许的最大人数的80%,我们将使该事件的非会员价格上涨50%。< / p>

到目前为止,我有这样的事情

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中,但是它说在此触发器的各处基本上都存在语法错误。我真的很困惑如果有人帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误一开始就正确。在两者之间使用空格:

"cameraIds"

在课程结束时:delimiter // ^--------------here