我正在使用PhoneGap构建库存应用程序,因为我有一个用于库存管理的模块STOCK。

库存表查询

CREATE TABLE STOCK (
    sto_id INTEGER PRIMARY KEY AUTOINCREMENT,
    pro_id INTEGER FOREIGNKEY REFERENCES PRODUCT(pro_id) UNIQUE,
    quantity TEXT
)

插入或替换查询
INSERT OR REPLACE INTO STOCK (pro_id,quantity) VALUES ("1","5");

此查询没有一个问题,它可以正常工作,但是我想用新的一个更新旧值的总和。

例子:
pro_id quantity
1       5

这是现有记录,因此现在当我在上述查询中触发具有3个数量的新交易时,然后quantity should be (5 (old) + 3 (new) ) = 8.
因此,更新记录后,它看起来像。
pro_id quantity
1       8

我该如何解决这个想法。或让我知道我是否走错了路。
谢谢。

最佳答案

实际上,我不是该解决方案的真正创始人。真正的英雄是Daverandom,在他的帮助下,我已经解决了我的问题。

他建议我使用follow this解决方案,这对找到我的解决方案确实很有帮助。

旧查询看起来像

INSERT OR REPLACE INTO STOCK (pro_id,quantity) VALUES ("1","5");

新查询看起来像
INSERT OR IGNORE INTO STOCK (pro_id,quantity) VALUES (1,0) ;
UPDATE STOCK SET quantity = quantity + 2 WHERE pro_id=1;

更新:

如果您不会在UPDATE中添加WHERE pro_id="val",则它将更新所有行。
这样会产生适当的结果。

用户第一次触发查询时,数量为2,而第二次触发相同查询时,数量为4。

因此,我们可以在每次更新中更改该值。

再次感谢Daverandom。

关于sql - 插入或替换为旧值之和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19156492/

10-12 03:37