0

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

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

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

1 回答 1

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
于 2013-05-02T23:41:49.453 回答