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