我正在努力实现以下目标:
当我在 match_xx 中添加 player_John 已经获得3 player_goals 的表格时 Players_goals - 它没有不仅要插入 Players_goals 表格,还要插入玩家表格。如果player_John已经打入2球,则会更新为5(总和)。
请参阅下面我正在使用的表格:
Players table
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| player_id | int(4) | NO | PRI | NULL | auto_increment |
| player_name | varchar(45) | NO | MUL | NULL | |
| team_name | varchar(45) | NO | MUL | NULL | |
| player_goals | int(4) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
Players_goals table
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| player_name | varchar(45) | NO | MUL | NULL | |
| match_id | int(4) | NO | MUL | NULL | |
| goals | int(4) | YES | MUL | NULL | |
+-------------+-------------+------+-----+---------+-------+
我怎样才能做到这一点?
答案 0 :(得分:0)
只是用于理解逻辑的虚拟代码,您可以通过此
CREATE TRIGGER goalTrigger
AFTER INSERT ( into player_goals table )
FOR EACH ROW
BEGIN
INSERT INTO (player table ) VALUES()
ON DUPLICATE KEY UPDATE player_goals = player_goals+current_goles
END
参考
答案 1 :(得分:0)
我会在Players_goals的ONINSERT事件上设置一个触发器来更新相关的玩家行
答案 2 :(得分:0)
我认为玩家表中的player_goals是玩家在每场比赛中直到最近得分的总和。 如果是这样的话:
第一个player_goals是您必须避免的重复数据,您可以从中获取此信息 表格Players_goals加入两个表格。
第二:如果你必须这样做,你可以使用 INSERT 语句将这些信息插入到players_goal 并使用 UPDATE 语句进入玩家表, 在这种情况下,你必须首先从Players_goals获得玩家的所有总和目标,否则你必须这样做 有一种方法可以在Players表中增加player_goals的旧值