- ベストアンサー
TRIGGER上でのMySQL株の足し算について
- MySQLのTRIGGERを使用して株の足し算を行いたいがエラーが発生している。
- 株の数量を更新するためのTRIGGERを作成しようとしているが、Unknown columnのエラーが発生している。
- MySQLのリファレンスマニュアルを参考にしたが、問題の解決には至っていない。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
おそらくtypoですね 2点確認してください。 (1)「user」と「usr」を打ち間違えています (2)「d3_latest_volume」の後ろに全角スペースが入っています エラーメッセージを見る限り(2)がとくに怪しいですね。 また競合するidをupdateしても仕方がないので INSERT INTO a_lateststock SET d2_usr_id = NEW.a2_usr_id, d3_latest_volume = NEW.a3_buy_stock_volume ON DUPLICATE KEY UPDATE d3_latest_volume = d3_latest_volume + NEW.a3_buy_stock_volume; で十分では?
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
いったんユーザー変数で受ける。 drop trigger a_ref; DELIMITER // CREATE TRIGGER a_ref BEFORE INSERT ON a_nowstock FOR EACH ROW BEGIN set @user_id := NEW.a2_user_id; set @busy_stock_volume := NEW.a3_buy_stock_volume; INSERT INTO a_lateststock (d2_user_id, d3_latest_volume ) values ( @user_id, @busy_stock_volume ) on duplicate key update d3_latest_volume = d3_latest_volume + @busy_stock_volume; end; // delimiter ;
お礼
有難うございます。 ご指摘いただきました方法で対応可能でした。 大変勉強になりました。 御礼申し上げます。
お礼
有難うございます。 ご指摘いただきました方法で対応可能でした。 単なるスペースミスでした。 御礼申し上げます。 お二人ともベストアンサーとさせて頂きたいのですが、おひとりと いうことで、今回はミスをご指摘いただきましたyambejp様をベスト アンサーとさせていただきます。 本当にありがとうございました。