我对 SQL 很陌生,正在开发一个小项目,但当我想要为我的模型实现触发器时,我陷入了困境。
我正在为一个体育联盟设计一个数据库。我有一个表“GamePlayed”,其中有一列名为“GoalsScored”,另一个表“Team”,其中有一列名为“GoalsFor”。这两个表通过“TeamID”键连接。
我想要一个触发器,通过将“GoalsScored”的值添加到先前的值来更新“GoalsFor”的值。这样,每场比赛,总进球数都会不断更新。
我尝试了以下方法:
CREATE TRIGGER "Goalsscored" AFTER UPDATE
ON `GamePlayed`
FOR EACH ROW
BEGIN
UPDATE `Team` SET `Team`.`GoalsFor`=`Team`.`GoalsFor`+`GamePlayed`.`GoalsScored`
WHERE `GamePlayed`.`Team_TeamID`=`Team`.`TeamID`
END
不幸的是,它说我的 SQL 语法有问题... 我该怎么做?
最佳答案
您需要更改分隔符。像这样的事情
delimiter $$
CREATE TRIGGER "Goalsscored" AFTER UPDATE
ON `GamePlayed`
FOR EACH ROW
BEGIN
UPDATE `Team` SET `Team`.`GoalsFor`=`Team`.`GoalsFor`+`GamePlayed`.`GoalsScored`
WHERE `GamePlayed`.`Team_TeamID`=`Team`.`TeamID`;
END;
$$
参见例如http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
关于php - 触发更新mysql值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37654406/