此问题涉及两个表: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中,但是它说在此触发器的各处基本上都存在语法错误。我真的很困惑如果有人帮助我,将不胜感激。
答案 0 :(得分:0)
错误一开始就正确。在两者之间使用空格:
"cameraIds"
在课程结束时:delimiter //
^--------------here