2013-02-23 102 views
0

我已經陷入了這個問題相當長的時間....任何人都可以幫助我嗎?
這裏是我想要實現的東西: 我有一個表A,A有屬性:id,count,total。在這裏,我需要實現這樣的觸發:如果表格中的計數更新,觸發將全部設置爲1編寫觸發器時的變異表

我最初的代碼是這樣的:

CREATE OR REPLACE TRIGGER tri_A AFTER UPDATE OF count ON A 
    FOR EACH ROW 
    BEGIN 
    UPDATE A SET total = 1 WHERE id = :new.id; 
    END; 
    /

與此問題是變異的表格。當表更新時,表將被鎖定。我搜索了答案,我嘗試了雜注autonomous_transaction,但我得到了一個無效的觸發器規範錯誤。還有其他評論說,我們應該嘗試使用觸發組合來做到這一點....我不知道如何做到這一點

回答

1

假設id是主鍵,你不想UPDATE表。你只是想設置:new.total。您還需要在BEFORE UPDATE觸發器中執行此操作,而不是使用AFTER UPDATE觸發器。

CREATE OR REPLACE TRIGGER tri_A 
    BEFORE UPDATE OF count ON A 
    FOR EACH ROW 
BEGIN 
    :new.total := 1; 
END; 
+0

你是對的!非常感謝你!!!我不敢相信我浪費了太多時間在錯誤的方向上...... – faz 2013-02-23 07:24:12