お世話になります。どうかご指導、アドバイス等頂けませんでしょうか。

以下の様な、tbl_productsにデータがinsertされた直後に起動させるトリガーをmysqlで作成しましたが、データを新規にtbl_productsにinsertしても起動いたしません。

CREATE TRIGGER `Percent` AFTER INSERT ON `tbl_products`
 FOR EACH ROW BEGIN
UPDATE
  tbl_products t1,
  ( SELECT id, (rate * number) AS prt
    FROM tbl_products GROUP BY id
  ) t2
SET
  t1.option = t2.prt
WHERE
  t1.id = t2.id
END

代わりに、上記のBEGIN~ENDの中にある記述をphpMyAdminのSQLから実行すると期待通りの結果になります。(計算結果prtがtbl_productsのカラムoptionに代入されます)

ですので、mysql上でのトリガーの作成方法に問題があるのではないかと考えておりますが、なぜデータをtbl_productsにinsertしてもトリガーを起動させないかご指導頂けませんでしょうか。

~~~~~~~~~~~~~~~~~~~~~
別テーブルを使用しての記述

CREATE TRIGGER `Percent` AFTER INSERT ON `tbl_products`
 FOR EACH ROW BEGIN
UPDATE
  tbl_product_rate t1,
  ( SELECT tbl_products.id, (rate * number) AS prt
    FROM tbl_products left join tbl_products_rate on tbl_products.id =   tbl_products_rate.id GROUP BY id
  ) t2
SET
  t1.option = t2.prt
WHERE
  t1.id = t2.id
END