ストアド関数またはトリガーは、関数またはトリガーを呼び出したステートメントによって(読み取りまたは書き込みのために)すでに使用されているテーブルを変更できません。
差出人:ストアドプログラムの制限 。
通常、挿入時に起動されるトリガーを使用して、挿入される値を変更する場合は、タイプBEFORE INSERT
のトリガーを作成します。 NEW
の値を変更します
また、次のステートメントはとにかくあなたが望むものではないことに気づきました。
update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));
特定の行を更新しようとしているだけだと思いますが、テーブル全体が更新されます。とにかく、これは単純な計算なので、この列を実際に保存する必要はありません。表示時に同じように簡単に値を計算し、コードを大幅に簡素化して、トリガーの問題を回避できます。