自增

sqlite3自增key设定(创建自增字段)

耗尽温柔 提交于 2019-12-09 19:41:16
在用sqlite设计表时,每个表都有一个自己的整形id值作为主键,其实可以不指定这么一个id值,sqlite内部本来就会为每个表加上一个 rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在3.0以前rowid是32位的整数,3.0以后是 64位的整数,为什么不直接使用这个内部的rowid作为每个表的id主键呢。 相关的文档在这里:?http://www.sqlite.org/autoinc.html?http://www.sqlite.org/faq.html 用指定INTEGER PRIMARY KEY AUTOINCREMENT 和不指定自增长字段用rowid有什么区别: 使用自增长字段为主键有不少问题,比如维护或是在大型分布应用中主键冲突的解决等。在一些大型分布应用中主键一般选用guid,这可以有效的避免主键冲突,减少对主键维护的工程。当然,对于中小型的应用,自增长字段的好处更多一些,简单、快速。 Sqlite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。当然,也可以设置为非NULL的数字来自己指定这个值,但这样就必须自己小心,不要引起冲突

jean同学的android编译自动修改版本号

拜拜、爱过 提交于 2019-12-03 01:49:58
android 应用程序的版本号 Version name 可以在android manifest下手动修改,在code中调用api获取该版本号。 项目中 的目标是: 每编译一次程序都会自动修改版本号,而不需要手动修改,由于中间debug的次数较多,我打算以每次Build时的当前时间作为版本号。 操作步骤: 1 . Android工程目录的 as sets 文件夹下新建一文件,命名为version 2. code中通过api获取as sets下的文件内容,回显在activity,基础android编程知识,不解释 3. Android.mk 文件中 LOCAL_PATH:= $(call my-dir)下紧接着 调用shell语句: $(shell date +%Y%m%d%H:%M:%S>$(LOCAL_PATH)/assets/version) 如果项目对 版本号或者版本名称有更复杂的需求,可以直接写成shell脚本,再由 Android.mk 调用 编译时自动输出当前编译时间到version文件,并打包到apk中,done! 来源: oschina 链接: https://my.oschina.net/u/659658/blog/84545