当前位置:  开发笔记 > 前端 > 正文

预测下一个自动插入的行ID(SQLite)

如何解决《预测下一个自动插入的行ID(SQLite)》经验,为你挑选了2个好方法。

我试图找到是否有一种可靠的方法(使用SQLite)在插入之前找到要插入的下一行的ID .我需要将id用于另一个insert语句,但是没有选择立即插入并获取下一行.

预测下一个id就像获取最后一个ID并添加一个一样简单吗?这是保证吗?

编辑:更多推理...我无法立即插入,因为插入可能最终被用户取消.用户将进行一些更改,SQL语句将被存储,用户可以从中保存(一次插入所有行)或取消(不更改任何内容).在程序崩溃的情况下,所需的功能是没有任何改变.



1> 小智..:

试试SELECT * FROM SQLITE_SEQUENCE WHERE name='TABLE';.这将包含一个字段seq,该字段是所选表的最大数字.将1添加到此值以获取下一个ID.

另请参阅SQLite Autoincrement文章,该文章来自上述信息.

干杯!



2> Eevee..:

一次性删除或提交一系列数据库操作正是交易的目的所在.查询BEGIN;用户之前就开始摆弄和COMMIT;一旦他/她的完成.您可以保证应用所有更改(如果您提交)或一切都被废弃(如果您查询ROLLBACK;,程序崩溃,电源熄灭等).一旦你从数据库中读取数据,你也可以保证在交易结束之前数据是好的,这样你就可以抓住MAX(id)任何你想要的东西而不用担心竞争条件.

http://www.sqlite.org/lang_transaction.html

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有