Sqlite数据库自动建表

缘起 做了一个分享邀请码的工具:http://code.lmbj.net/。有个需求是显示有多少人已经索码成功。问题在于程序的设计是只保存正在索码的数据,索码成功的数据直接删除,所以需求转变为如何得到已删除数据的条数。 考虑到id是自增长的,数据库中应该有系统表来保存相关信息,用sqliteman打开数据文件发现确实存在这样一张系统表sqlite_sequence。表中保存了表名和自增长的字段(一般就是主键id)的当前值,测试了下,如果包含自增长字段的表没有插入过数据,不会保存在此表里,只要曾经插入过数据,无论当前是否有数据,该值都会存在。 至此,问题得以解决:执行sql语句通过表名从sqlite_sequence表查询id的当前值,然后减去正在索码的条数就是已删除数据的条数,也就是已经有多少人索码成功。唯一需要注意的是初始化时没有人索码,查询不到记录,需要做异常处理。 ...

三月 27, 2014