Триггеры: проблемы с тренировками футбольной команды - PullRequest
0 голосов
/ 24 августа 2011

У меня возникли проблемы с выполнением триггеров
Я делаю некоторые упражнения для университета, и я предпочитаю проверить себя в реальном MySQL базы данных.

Упражнение следующее
Схема таблицы:

Result ( <b>Day, Home-Team, Visiting-Team</b>, Goal-Home, Goal-Visiting )
Ranking ( <b>Day, Team</b>, Points )


В упражнении просим определить триггер со следующим правилом
Когда я вставляю кортеж в таблицу Result, если Goal-Home> Goal-Visiting, я должен написать два кортежа в таблице Ranking: один из команды-победителя, а другой - для проигравшего.
Поясняю это на примере
У команд A и B, в день D, был результат 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

Я проверил этот код на моем MySQL DB, но он не работает (я сделал несколько попыток)

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; //


У вас есть предложения? Почему это не работает?
Заранее благодарим за терпение !!!

1 Ответ

1 голос
/ 24 августа 2011

Вы должны использовать кавычки '`' для столбцов, таких как Goal-Home, потому что '-' не разрешен символ.Поэтому попробуйте использовать NEW. Goal-Home`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...