2017-02-17 5 views
1

新しい列を作成しましたが、この同じ表の別の3列の値を乗算した結果を挿入します。目標は、 '長さ' * '幅' * '高さ'を掛けることによって、各製品IDのボリュームを自動的に計算することです。mysqlは自動的に3列の値を掛け合わせて4列目に挿入した結果を返します

おそらくこれはトリガーを使用して達成する必要がありますが、私の知識はこの問題に関して非常に限られています。

これについてのヘルプがありますか?

ご協力いただきありがとうございます。

+0

あなたの時間と私の解決策を提供するための親切なジェスチャーのおかげで、皆様に大変感謝したいと思います。私のために解決策を見つけるためにmysqlを処理し続けることが本当に動機づけられていました。私はバージョンがわからなかったので(私は、Serverバージョン:10.1.19-MariaDB with PHP version:5.6.24という結果を得ました)、私はeggyalの解決策に従いました。そしてそれは働いた!本当にありがとう!! –

+0

@eggyalの解決策があなたのために働いた場合、その答えは正しいとマークする必要がありますhttp://stackoverflow.com/help/someone-answers – e4c5

答えて

0

おそらくこれは、トリガー

ビンゴを使用して達成する必要があります! (それ以外の場合は、viewsまたはMySQL 5.7.6以降、generated columnsを使用できます)。

CREATE TRIGGER my_trigger BEFORE INSERT ON my_table FOR EACH ROW 
    SET NEW.volume = NEW.length * NEW.width * NEW.height 

あなたはBEFORE UPDATEトリガーがあまりにも-が、私は読者の演習として残しておきたいことがあります。

+0

ありがとうございます。これは魅力的なように働いていました。 –

0

はMySQL 5.7.6を使用している場合は、これは、生成された列

ALTER TABLE X 
    ADD COLUMN Volume DOUBLE AS length * width * height 

ノートリガーは必要ありません。この方法を達成することができ、かつ、カラムは常に更新されます。

関連する問題