我有一个SQLite数据库,我需要用不断增加的计数器标记任何新记录和任何修改的记录。我必须避免竞争条件插入和更新的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
SQLite和MySQL是两个完全不同的东西。 – tadman
让我们去SQLite然后... BTW辉煌 - > https://github.com/ConsenSys/dapp-store-contracts/blob/master/contracts/ReviewModel.sol –
SQLite是一个很好的选择嵌入到应用程序,因为它不需要服务器进程。 – tadman