INSERT和UPDATE上的SQLite自动递增

时间:2017-09-15 15:24:32

标签: sql database sqlite cordova

我有一个SQLite数据库,我需要用不断增加的计数器标记任何新记录和任何修改过的记录。我必须避免竞争条件

这是我目前正在使用的两个问题:

插入

INSERT INTO customer (id, name, counter) VALUES (myId, "blablabla", ((SELECT MAX(counter) FROM customer) + 1))

更新

UPDATE customer SET name = "blablabla", counter = (SELECT MAX(counter) FROM customer) + 1 WHERE id = myId

这样安全吗?我在Cordova移动应用上使用SQLite

如果没有,最好的方法是什么?我可以将counter声明为AUTO_INCREMENT,并且只有这两个查询吗?

插入

INSERT INTO customer (id, name) VALUES (myId, "blablabla")

更新

UPDATE customer SET name = "blablabla", counter = (SELECT MAX(counter) FROM customer) + 1 WHERE id = myId

1 个答案:

答案 0 :(得分:1)

创建一个只包含计数器值的TABLE,每次添加新记录或更新时都会调用它,并将值增加1并将该值写回带有更新的TABLE我不知道是什么当你删除一条记录时,你会这样做但与上面相同,只是将计数器值减少1

如果你没有分钟,你可以告诉我们为什么记录需要有一个ID和一个psudo ID,真正的ID是什么并不重要或者我错过了你在做什么我只谈论Sqlite