Триггер для увеличения таблицы после вставки - PullRequest
0 голосов
/ 28 октября 2018

Я перебрал множество предыдущих вопросов, но все еще не совсем понял.

У меня есть таблица, nfl.games и nfl.teams.В частности, nfl.teams имеет два столбца, в которых итоговый итог составляет

rushingyards
passingyards

. Когда я вставляю новые игры в nfl.games, среди них есть 6 столбцов,

homerushingyards
homepassingyards
rivalpassingyards
rivalrushingyards
hometeamName
rivalteamName

hometeamName иrivalteamName - это внешние ключи к моей таблице команд.Триггер, который я пытаюсь создать, - это ПОСЛЕ ВСТАВКИ, который после вставки в таблицу 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

Я знаю, что этот синтаксис очень неправильный, но я думаю, что это шаг в правильном направлении.

Спасибо

1 Ответ

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

Похоже, вы хотите 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;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...