Mysqlでafter insert update triggerの設定方法につきまして。
お世話になります。どうかご指導、アドバイス等頂けませんでしょうか。
以下の様な、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