Почему этот синтаксис триггера MySQL неправильный? - PullRequest
0 голосов
/ 13 октября 2018

В этот вопрос вовлечены две таблицы: 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, но он сказал, что есть синтаксические ошибки в основном везде этого триггера.Я действительно смущен.Буду признателен, если кто-нибудь поможет мне с этим.

1 Ответ

0 голосов
/ 13 октября 2018

Ошибка в самом начале.Используйте пробел между:

delimiter //
         ^--------------here

И в конце курса тоже: delimiter ;

...