1

これは私の以前の質問への参照です

Railsコールバックが実行されない

フレームワークがしばらく機能していないので、これを行うためのトリガーを書くことを考えています

私のトリガーは次のようになります

DELIMITER $$
CREATE TRIGGER sales_earning AFTER INSERT ON sales_transactions  FOR EACH ROW  
BEGIN
   DECLARE earning INT;
   SET earning = (select sales_earning from payouts where id = NEW.payout_id);
   earning = earning + NEW.amount   
   UPDATE payouts SET sales_earning = earning where id = NEW.payout_id ;
END $$
DELIMITER ;

トリガーの問題が何であるかについては、誰もが手がかりを持っています。

エラー 1064 (42000): SQL 構文にエラーがあります。near '=arning + NEW.amount; を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

参考までに、支払いと sales_transactions の間には親子関係があります

どんな助けでも

4

2 に答える 2

0

あなたは;アフターがありませんearning = earning + NEW.amount

そして、次のことを行う必要があります。

SET earning = (select sales_earning from payouts where id = NEW.payout_id) + NEW.amount;

アップデート:

私の答えはあなたのトリガーのどこが悪いのかを指摘していますが、それが収益でやりたいことのすべてである場合は、eggyalの答えが指摘しているように単純にそれを行う必要があります

于 2013-08-06T10:18:40.150 に答える