我已经搜索了很多先前的问题,但是我仍然不太了解。
我有一张桌子,nfl.games和nfl.teams。 nfl.teams特别具有两列,它们使
rushingyards
passingyards
当我将新游戏插入nfl.games时,其中有6列,
homerushingyards
homepassingyards
rivalpassingyards
rivalrushingyards
hometeamName
rivalteamName
hometeamName和竞争对手teamName是我的teams表的外键。我要创建的触发器是一个AFTER INSERT触发器,在nfl.GAMES表格上进行插入后,它将为主队和对手队使用冲球和传球码,并为THAT团队更新冲球和传球码。在nfl.TEAMS表中。
说实话,我在SQL触发器方面还很陌生,语法看起来很混乱,所以我只想尝试先更新主队冲/传球码。如果有人能指出我正确的方向,那么到目前为止,我大致可以做到
CREATE TRIGGER 'yardsUpdate' AFTER INSERT ON 'nfl.games' FOR EACH ROW
BEGIN
teams.passingyards = teams.passingyards + games.homepassingyards;
teams.rushingyards = teams.rushingyards + games.homerushingyards;
WHERE teams.teamName = games.hometeamName;
END
我知道这种语法还很不完善,但是我认为这是朝正确方向迈出的一步。
谢谢
答案 0 :(得分:0)
您似乎希望在团队表上使用UPDATE
。为了引用触发器所有者(nfl.games)的列,请使用NEW
伪记录
CREATE TRIGGER yardsupdate AFTER
INSERT ON nfl.games
FOR EACH ROW
BEGIN
UPDATE nfl.teams t
SET t.passingyards = t.passingyards +:new.homepassingyards,
t.rushingyards = t.rushingyards +:new.homerushingyards
WHERE t.teamname =:new.hometeamname;
END;
/