Chi*_*iya 5 sql sqlite cordova
我正在使用PhoneGap构建库存应用程序.我有一个模块库存用于库存管理.
股票表查询
CREATE TABLE STOCK (
sto_id INTEGER PRIMARY KEY AUTOINCREMENT,
pro_id INTEGER FOREIGNKEY REFERENCES PRODUCT(pro_id) UNIQUE,
quantity TEXT
)
Run Code Online (Sandbox Code Playgroud)
INSERT或REPLACE查询
INSERT OR REPLACE INTO STOCK (pro_id,quantity) VALUES ("1","5");
Run Code Online (Sandbox Code Playgroud)
这个查询没有一个问题,它的工作完美,但我想用新的更新OLD VALUES的SUM.
例:
pro_id quantity
1 5
Run Code Online (Sandbox Code Playgroud)
这是现有的记录,所以现在我将查询新的交易,然后有3个数量 quantity should be (5 (old) + 3 (new) ) = 8.
所以在更新记录后它看起来像.
pro_id quantity
1 8
Run Code Online (Sandbox Code Playgroud)
我怎么能解决这个问题呢.或者让我知道我是否走错路.谢谢.
实际上我并不是这个解决方案的真正创始人.真正的英雄是Daverandom,在他的帮助下,我已经解决了我的问题.
他建议我遵循这个解决方案,这对找到我的解决方案非常有帮助.
较旧的查询看起来像
INSERT OR REPLACE INTO STOCK (pro_id,quantity) VALUES ("1","5");
Run Code Online (Sandbox Code Playgroud)
新查询看起来像
INSERT OR IGNORE INTO STOCK (pro_id,quantity) VALUES (1,0) ;
UPDATE STOCK SET quantity = quantity + 2 WHERE pro_id=1;
Run Code Online (Sandbox Code Playgroud)
更新:
如果您不添加WHERE pro_id="val"
UPDATE,那么它将更新所有行.这将产生适当的结果.
当用户第一次触发查询时,数量将为2,当您第二次触发相同的查询时,它将为4.
因此,我们可以在每次更新中更改该值.
再次感谢Daverandom.
归档时间: |
|
查看次数: |
2114 次 |
最近记录: |