将数据插入表中,然后使用该数据更新另一个表


Insert data into table and update another table with that data.

我正在尝试实现以下目标:

当我添加到表格中时Players_goalsplayer_Johnmatch_xx中得分 3 player_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    |       |
+-------------+-------------+------+-----+---------+-------+

我怎样才能做到这一点?

下面的只是理解逻辑的虚拟代码,你可以通过这个

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

引用

http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx

我会在 Players_goals 的 ONINSERT 事件上设置一个触发器,以更新相关的玩家行

我假设球员表中的player_goals是球员直到最近在每场比赛中得分的所有进球的总和。如果是这种情况:

首先player_goals是您必须避免的冗余数据,您可以从以下位置获取此信息通过连接两个表来Players_goals表。

第二:如果必须这样做,可以使用 INSERT 语句将此类信息插入到players_goal并使用 UPDATE 语句进入玩家表,在这种情况下,要么你必须首先从Players_goals获得玩家的所有总进球数,要么你必须有办法在玩家表中增加player_goals的旧值