0

-トピック-

複数の列を持つ ORDERLINE というテーブルがあります。

ORDERHEADER という別のテーブルには、Order_completed という列があり、すべての注文列が満たされたときにシステム日付に設定されます。

トリガーを使用してこれを行うにはどうすればよいですか?

私が試す方法は

    CREATE TRIGGER orderhascompleted
    AFTER (all values in ORDERLINE has been completed)
    BEGIN
    INSERT INTO ORDERHEADER (Order_completed) VALUES (NOW())

これどうやってするの?C++ では単純な if ステートメントを使用しますが、SQL ではそれが可能だとは思いません

4

1 に答える 1

0

たぶん、トリガーで IF ステートメントを使用して :NEW.[FIELD] を使用すると、次のように宣言されます。

    CREATE OR REPLACE TRIGGER [NAME] AFTER UPDATE
    ON [TABLE]
    FOR EACH ROW
    REFERENCING OLD AS OLD NEW AS NEW

仕事をするでしょう。

If ステートメントは次のようになります。

If (:OLD.FIELD IS NOT NULL OR :NEW.FIELD IS NOT NULL) AND ... THEN
  UPDATE [TABLE]...
END IF;
于 2013-05-01T19:08:37.690 に答える