Съхранена функция или тригер не може да променя таблица, която вече се използва (за четене или запис) от израза, който е извикал функцията или тригера.
от:Ограничения на съхранените програми .
Обикновено със задействане, което се задейства при вмъкване, ако искате да промените стойността, която се вмъква, правите тригера от типа BEFORE INSERT
и променете стойностите в NEW
също така забеляза, че следното твърдение не е това, което искате.
update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));
Той актуализира цялата таблица, докато мисля, че се опитвате да актуализирате само определен ред. Както и да е, това е просто изчисление, така че всъщност не е необходимо да съхранявате тази колона. Можете също толкова лесно да изчислите стойността по време на показване и да направите кода си много по-опростен + да избегнете проблема със задействането.