• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:TRIGGER上の足し算について)

TRIGGER上でのMySQL株の足し算について

このQ&Aのポイント
  • MySQLのTRIGGERを使用して株の足し算を行いたいがエラーが発生している。
  • 株の数量を更新するためのTRIGGERを作成しようとしているが、Unknown columnのエラーが発生している。
  • MySQLのリファレンスマニュアルを参考にしたが、問題の解決には至っていない。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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; で十分では?

tajix14
質問者

お礼

有難うございます。 ご指摘いただきました方法で対応可能でした。 単なるスペースミスでした。 御礼申し上げます。 お二人ともベストアンサーとさせて頂きたいのですが、おひとりと いうことで、今回はミスをご指摘いただきましたyambejp様をベスト アンサーとさせていただきます。 本当にありがとうございました。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

いったんユーザー変数で受ける。 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 ;

tajix14
質問者

お礼

有難うございます。 ご指摘いただきました方法で対応可能でした。 大変勉強になりました。 御礼申し上げます。