我有2個表格:'matches'
和'players'
。mysql:基於1輸入更新2個表格
在'比賽'我有單個進球和誰通過。
在'球員'中我有個人球員和進球。
當玩家的名字在'比賽'表中接近目標時,我該如何自動更新玩家在'玩家'表中得分的總進球數?
我有2個表格:'matches'
和'players'
。mysql:基於1輸入更新2個表格
在'比賽'我有單個進球和誰通過。
在'球員'中我有個人球員和進球。
當玩家的名字在'比賽'表中接近目標時,我該如何自動更新玩家在'玩家'表中得分的總進球數?
我會創建第三個表GOALS
。
create table GOALS(
GOAL_ID INT,
PLAYER_ID INT,
MATCH_ID INT,
GOAL_TIME DATE,
ETC...
);
然後用這個表加入到PLAYERS
和MATCHES
表。這允許所有GOALS
被存儲在一個位置。如果您需要確定玩家獲得的進球數量或比賽中的進球數量,您可以針對進球表執行簡單的count()
。
您可以爲matches
表創建trigger
。如果添加或刪除新記錄,觸發器將更新玩家的目標數量。
否則,你會做2個查詢:插入的戰績,更新播放記錄
試試這個在您選擇的情況下觸發一個
Here third table needed
create table GOAL(
GID INT(PK),
PID INT(FK of players),
MID INT (FK of matches)
);
when This (GOAL) inserted then use a trigger used and update goal of players
CREATE TRIGGER ins_trig AFTER INSERT ON GOAL
-> FOR EACH ROW
-> BEGIN
-> UPDATE players SET goals scored(GIVE THE CONDITION);
-> END;
不會你已經變異表的問題來自同一個表算不算?如果你不選擇count,但是在觸發器中做+ 1/-1,那麼你將失敗並且發生多用戶交互 – smnbbrv