我在做触发器时遇到一些麻烦
我正在为大学做一些练习,我更喜欢在真正的mysql数据库中测试自己。
练习如下
表格架构为:
Result ( <b>Day, Home-Team, Visiting-Team</b>, Goal-Home, Goal-Visiting )
Ranking ( <b>Day, Team</b>, Points )
练习要求用下一个规则定义触发器
当我在表格Result中插入一个元组时,如果是Goal-Home&gt;目标访问我必须在表格中写两个元组排名:赢家之一,另一个输家。
我用一个例子来澄清它
在D日,A队和B队有G_A对G_B的结果,所以我必须在排名中用这个规则写2个元组
如果G_A> G_B我必须写(D,A,3)和(D,B,0)
如果G_A = G_B,我必须写(D,A,1)和(D,B,1)
如果G_A&lt; G_B我必须写(D,A,0)和(D,B,3)
我已经在我的mysql数据库上测试了这个代码,但它不起作用(我做了一些尝试)
DELIMITER //
CREATE TRIGGER insertRankValues
AFTER INSERT ON Result
FOR EACH ROW
BEGIN
IF NEW.Goal-Home > NEW.Goal-Visiting
INSERT INTO Ranking VALUES ( NEW.Day, NEW.Home-Team, 3);
INSERT INTO Ranking VALUES ( NEW.Day, NEW.Visiting-Team, 0);
END IF;
IF NEW.Goal-Home < NEW.Goal-Visiting
INSERT INTO Ranking VALUES ( NEW.Day, NEW.Home-Team, 0);
INSERT INTO Ranking VALUES ( NEW.Day, NEW.Visiting-Team, 3);
END IF;
IF NEW.Goal-Home = NEW.Goal-Visiting
INSERT INTO Ranking VALUES ( NEW.Day, NEW.Home-Team, 1);
INSERT INTO Ranking VALUES ( NEW.Day, NEW.Visiting-Team, 1);
END IF;
END; //
你有什么建议吗?为什么不起作用?
提前感谢您的耐心!!!
答案 0 :(得分:1)
你应该对像Goal-Home这样的列使用引号'''因为' - '是不允许的符号。 所以尽量使用 NEW.`Goal-Home`