Een opgeslagen functie of trigger kan een tabel die al wordt gebruikt (voor lezen of schrijven) niet wijzigen door de instructie die de functie of trigger heeft aangeroepen.
from:Beperkingen voor opgeslagen programma's .
Over het algemeen met een trigger die wordt geactiveerd bij invoegen, als u de waarde die wordt ingevoegd wilt wijzigen, maakt u de trigger van het type BEFORE INSERT
en verander de waarden in NEW
merkte ook op dat de volgende verklaring toch niet is wat je wilt.
update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));
Het werkt de hele tabel bij, terwijl ik denk dat je alleen een specifieke rij probeert bij te werken. Hoe dan ook, dit is een eenvoudige berekening, dus u hoeft deze kolom niet echt op te slaan. U kunt net zo gemakkelijk de waarde berekenen op het moment van weergave en uw code een stuk eenvoudiger maken + het probleem met de trigger vermijden.