2017-07-18 1 views
0

というフィールドがあり、結果はquantidadeに、precoを乗じたものになります。トリガーを使用して他のテーブルのデータを使用してフィールドを更新するにはどうすればよいですか?

これを行うには、テーブル(cart_produtos)の行が完了すると、valorが更新されるようにトリガーを使用する必要があると思います。

は、これまでのところ、私はこれを行うために管理:

DELIMITER | 
CREATE TRIGGER valor_update AFTER INSERT 
ON cart_produtos FOR EACH ROW 
BEGIN 
    INSERT INTO cart_produtos(valor) VALUES(quantidade*); 
END | 
DELIMITER ; 

私の問題は、フィールドprecoは、別のテーブル(produtos)であるということです。私はJOINを使うべきだと思うが、私はフィールド値にそれをどうやって取得するのか分からない。

データベースダイアグラム: Database

+0

一般に、MySQLのトリガは、テーブルを変更して起動させることはできません。 'preco'コラムで何をしようとしているのか分かりません。一見すると、私は計算カラムがほしいと思っていました。 –

+0

いいえ 'preco'列はINT値です。私はその値を知りたいので、 'quantidade'フィールドでそれを掛けることができるので、合計値を知ってから、' preco' * 'quantidade'の結果で列の値を更新します。 @TimBiegeleisen – fabimetabi

+1

ストアドファンクション/トリガーの 'cart_produtos'テーブルは、トリガーを適用するメインテーブルであるため、更新できません。 別のテーブルを使用してみてください。 – Man

答えて

0

は別々のテーブルを作成し、値を報告するためにそれを使用する必要があります。

関連する問題