2013-05-01 44 views
0

-topic-如何在另一個表完成後更新列來創建觸發器?

我有一個名爲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

+0

你怎麼知道什麼時候「的所有訂單列已完成」 – Aushin 2013-05-01 19:02:20

+0

當所有列不爲空,因爲他們有數據添加 – 2013-05-01 19:06:08

+0

能否訂單項目表在那之後更新?如果訂單首行有多個訂單行,該怎麼辦? – 2013-05-01 19:47:15

回答

0

:NEW [字段]使用觸發器的IF語句中聲明是這樣的:

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; 
相關問題