1

MySQL でできるすべてのことを楽しんでいます。UNITS * PRICEが(もちろん)総コストに等しいMySQL列の総コストを更新するためにMySQLトリガーを使用する方法を学びたいです。

請求表には、(価格、単位、総費用) が含まれます

    CREATE TRIGGER TRG_TOTAL_COST 
    AFTER INSERT ON INVOICE
    FOR EACH ROW 
    BEGIN 
    --1) Get the TOTAL
    SELECT TOTAL_COST from INVOICE
    --2) Compute total
    TOTAL_COST= UNITS * 
    PRICE; 
    END;
4

1 に答える 1

0

これが非常に優れたデータベース設計であるかどうかはわかりませんが、次の方法で非常に簡単に実現できます。

CREATE TRIGGER TRG_TOTAL_COST BEFORE INSERT ON INVOICE FOR EACH ROW
SET NEW.TOTAL_COST = NEW.UNITS * NEW.PRICE

しかし、なぜこれをトリガーで実行したいのかわかりませんか? 挿入時に必要なデータがすべて揃っているので、挿入するだけで製品を実行できます。

または、実際にそれを保存したい正当な理由がない限り、冗長になる可能性のある列を除外して、select で積を計算してみませんか?

于 2012-11-04T02:28:41.533 に答える