sqlite如何从变量自动更新列

时间:2016-09-16 18:19:20

标签: sqlite triggers

我试图看看触发器是否可以用于我的情况。我基本上想模仿Excel的自动更新功能,如Sum(A:A)如何自动更新并返回总和。这是我的架构。

.schema
CREATE TABLE product (id integer, name text, price integer);
CREATE TABLE sum(total integer);

我想触发INSERT / UPDATE命令,该命令对价格求和并将值插入总计。我试过以下但是语法错误让我很头疼。

CREATE TRIGGER strigger insert on product
begin
INSERT into sum(total) values(sum(price) from product);
end;

这是正确的做法吗?或者我是否必须故意从sqlite控制台或宿主语言调用更新命令? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

可以编写一个触发器:

CREATE TRIGGER strigger
AFTER INSERT ON product
BEGIN
    UPDATE sum SET total = (SELECT sum(price) FROM product);
END;

但在许多情况下,按需计算总和会更好:

CREATE VIEW sum AS
SELECT sum(price) AS total FROM product;