I don\'t know why my trigger isn\'t working, the query works when I use it manually, but when I want to be updated by a trigger it doesn\'t work. Can someone help me to know
As @e4c5 mentioned, even if your trigger could update the same table (it can't), your UPDATE would affect all rows of the table, not only the single row that is currently being updated.
If you want a trigger that changes values in the row being updated, you can just use SET:
CREATE TRIGGER `upd_PTS` BEFORE UPDATE ON `pos_table`
FOR EACH ROW BEGIN
IF (NEW.played_games <> OLD.played_games)
THEN
SET NEW.PTS = NEW.won_games*2 + NEW.tie_games*1;
END IF;
END
Also notice that you can't change values in the row that caused the trigger to run, unless you do it in a BEFORE trigger.