插入和更新后的MySQL触发不起作用

时间:2015-02-15 00:40:27

标签: mysql triggers

好的,我有2张桌子。得分和球员。播放器包含播放器名称和他们的ID。分数是球员,他们的身份和分数的列表。

我努力制作一个触发器,将新的名字从得分列表中插入玩家。之后它应该用玩家ID更新得分列表,因为这是玩家表中的自动增量PK。

我该怎么做?

到目前为止,我有两个问题:

INSERT INTO players (`pname`)
SELECT DISTINCT
`pname`
FROM
score   
Where `pname`
NOT IN (
SELECT `Playername`
from
players) ;

__

UPDATE score
    INNER JOIN
.players 
SET 
score.playerid = players.pid 
WHERE
score.pname = players.Playername ;

但它们不会在触发器内触发,因为它们会干扰或尝试同时访问同一个表。

begin.....end中的两个语句放在一起工作..

关于此的任何指示都会很棒!

修改

CREATE TRIGGER `dbname`.`score_AFTER_INSERT` 
AFTER INSERT ON `score` FOR EACH ROW

 begin
 INSERT INTO players (`pname`)
 SELECT DISTINCT
 `pname`
 FROM
 score   
 Where `pname`
 NOT IN (
 SELECT `Playername`
 from
 players) ;

 UPDATE score
 INNER JOIN
 .players 
 SET 
 score.playerid = players.pid 
 WHERE
 score.pname = players.Playername ;

end

0 个答案:

没有答案