У меня есть две таблицы, в которых отслеживаются команды в лиге и игры, в которые играют команды. У меня есть поле в таблице «команда» для побед каждой команды, и я пытаюсь создать триггер в MySQL, чтобы автоматически обновлять это поле всякий раз, когда игра добавляется / обновляется выигравшей командой, и наоборот уменьшать его всякий раз, когда игра обновлен / удален. Это мои таблицы:
CREATE TABLE team (
teamName varchar(32) NOT NULL,
teamManager varchar(32) NOT NULL,
teamPoints decimal(6,2) DEFAULT 0,
teamWins tinyint(255) unsigned DEFAULT 0,
leagueID tinyint(255) unsigned NOT NULL,
FOREIGN KEY (leagueID) REFERENCES league (leagueID),
PRIMARY KEY (teamName, leagueID));
CREATE TABLE game (
gameID int NOT NULL AUTO_INCREMENT,
gameDate date NOT NULL,
winningTeam varchar(32) NOT NULL,
losingTeam varchar(32) DEFAULT NULL,
leagueID tinyint(255) unsigned NOT NULL,
FOREIGN KEY (leagueID) REFERENCES league (leagueID),
FOREIGN KEY (winningTeam) REFERENCES team (teamName),
FOREIGN KEY (losingTeam) REFERENCES team (teamName),
PRIMARY KEY (gameID));
и моя попытка триггера для добавления:
CREATE TRIGGER addWin
AFTER INSERT, UPDATE ON game
AS
BEGIN
UPDATE team
SET team.teamWins = team.teamWins + 1
WHERE team.teamName IN (SELECT inserted.winningTeam FROM inserted)
END;