0
我在我的Rails项目上使用sqlite3,我需要创建一个触发器,当另一个引用表更新时自动插入到表中。 例如,我有2个表分解和总计,每个表的模式如下。下面 击穿与UPSERT sqlite3触发器
Date TEXT NOT NULL,
Amount DECIMAL NOT NULL
总
Date TEXT NOT NULL,
Daily_Total DECIMAL NOT NULL,
FOREIGN KEY (Date) REFERENCES Breakdown(Date)
然后,就是我创建触发器。
CREATE TRIGGER update_sum AFTER INSERT ON Breakdown
...> BEGIN
...> INSERT OR REPLACE INTO Total (Date, Daily_Total)
...> VALUES (Breakdown.Date,
...> (SELECT SUM(Amount) FROM Breakdown WHERE Date = Total.Date));
...> END;
所以,我的想法是,当我插入击穿表作为**INSERT INTO Breakdown VALUES (Date('now'),19.99);**
然后总表被通过任何插入或更新而更新。
然而,当我插入分解表,我得到一个错误说错误:没有这样的列:Breakdown.Date
谁能告诉我的地步,我做错了吗?
谢谢!
太谢谢你了!那正是我想要的!但是,我可以获得更多的解释或文档,以了解为什么我们使用NEW而不是实际的表名称? – Terrence