テーブルTRADE_ORDERS
を検討してください。MYSQLエラー1442:トリガー/ストアドプロシージャ内のテーブルを更新できません
Symbol | Type | Count | Settled | Settled_count
------ | -----| ------| --------| -------------
Apple | BUY | 100 | NO | 0
Apple | BUY | 50 | NO | 0
私はトリガー新しい行のAFTER INSERT
がある場合は、未決済注文に応じて、以前の注文を解決しようとするだろうafter_trade_orders_insert
を書かれています。
今度はINSERT
にTRADE_ORDERS
に値Apple, SELL, 150
の行を入力すると、購入したすべての株が決済されます。したがって、意図したアクションは、テーブルを下の状態にする必要があります。
意図した出力
Symbol | Type | Count | Settled | Settled_count
------ | -----| ------| --------| -------------
Apple | BUY | 100 | YES | 100
Apple | BUY | 50 | YES | 50
Apple | SELL | 150 | YES | 150
私は達成するためにMySQLでコードを作成する方法を理解します。保存された機能/トリガにテーブル「NSE_FO」を更新できません1442は、それはすでに、ステートメントで使用されているために呼び出され、この:私はafter_trade_orders_insert
でそれを行うためのコードを書くときしかし、それは誤り
エラーコードで失敗しますストアドファンクション/トリガ。 0.055秒
私はこのエラーが何であるか、なぜ起こるのかを理解しています。
質問:目的の出力を達成するにはどうすればよいですか?
しかし、同じテーブルの他の行を更新することはできますか? – bobdiya
正確には、トリガーを使用している新しく挿入された行を更新することはできません。 –
同じテーブルの他のいくつかの行を更新しようとしている場合。どのように達成するのですか? – bobdiya