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