需要帮助创建SQLite触发器以保持运行总计

时间:2013-05-02 05:33:17

标签: android sqlite triggers

这是我创建触发器的第一次尝试,我很困惑。这是具有相关列的基本数据库模式:

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时创建一个触发器,向用作C207_FOREIGNKEY的特定C101_NAME行的C105_COUNT添加+1。

目的是保持在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

1 个答案:

答案 0 :(得分: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