2013-05-02 54 views
0

這是我第一次嘗試創建觸發器,我很困惑。下面是與相關列的基本數據庫架構:需要幫助創建SQLite觸發器來保持運行總計

DATABASE_NAME 

TABLE_100    
| C100_ROWID | C101_NAME | ... | C105_COUNT | 

TABLE_200    
| C200_ROWID | C201_NAME | ... | C207_FOREIGNKEY (C101_NAME) | 

TABLE_100先創建,然後TABLE_200的行基於用戶輸入填充,所以TABLE_200是空的,當應用程序第一次啓動。

我想要做的是創建一個觸發器,當在TABLE_200上有一個INSERT時,將C105_COUNT的C105_COUNT添加到用作C207_FOREIGNKEY的特定C101_NAME行。

目的是在TABLE_200中使用C101_ROWID/C100_NAME所有時間的總計。

這是我走到這一步,和這顯然完全錯了,所以任何幫助,將不勝感激:

CREATE TRIGGER runningcount AFTER INSERT ON TABLE_200 
BEGIN 
    UPDATE TABLE_100 
    SET C105_COUNT = C105_COUNT + 1 
    WHERE (??? newly inserted row on TABLE_200 ???) C207_FOREIGNKEY = C101_NAME 
END 

編輯:

我想通了約2小時的挫折後。在以後任何人都需要這個:

CREATE TRIGGER trigger AFTER INSERT ON TABLE_200 
    BEGIN 
    UPDATE TABLE_100 
     SET C105_COUNT = C105_COUNT + 1 
     WHERE C101_NAME = new.C207_FOREIGNKEY 
    END 
+0

請把你的答案不是問題,而是在一個答案。 – 2013-05-02 08:49:31

回答

0

大約2小時的挫折後,我想出了它。如果任何人在將來需要這個:

CREATE TRIGGER trigger AFTER INSERT ON TABLE_200 
    BEGIN 
    UPDATE TABLE_100 
     SET C105_COUNT = C105_COUNT + 1 
     WHERE C101_NAME = new.C207_FOREIGNKEY 
    END