大型网站建设优化排名,卖鞋推广引流方法,wordpress 4.2.8,WordPress主题开源版(点击上方公众号#xff0c;可快速关注)SQLite数据库中的表均有一个特殊的rowid字段#xff0c;它是一个不重复的64位有符号整数#xff0c;默认起始值为1。rowid别名为oid或_rowid_#xff0c;但在创建表的SQL声明语句中只能使用rowid作为关键字。如果在创建表的时候设置了… (点击上方公众号可快速关注)SQLite数据库中的表均有一个特殊的rowid字段它是一个不重复的64位有符号整数默认起始值为1。rowid别名为oid或_rowid_但在创建表的SQL声明语句中只能使用rowid作为关键字。如果在创建表的时候设置了类型为integer的具有自动增长性的主键那么这时的主键相当于是rowid的别名。rowid只能是单调递增的它由SQLite内部维护不能自己指定。对于失败的插入操作rowid也可能在原来的基础上执行了自增。删除或回滚操作并不会减小rowid的值。当rowid达到所能表示的最大值时这时如果有新纪录要插入系统就会从之前没有被使用过的(或从已经被删除的记录的)rowid中随机取出一个作为rowid。若没有可用的rowid系统就会抛出SQLITE_FULL的错误。rowid字段在表中默认是隐藏的也就是说除非SQL查询语句中指定返回rowid否则查询结果不会包含有rowid字段。可以在创建表时使用WITHOUT ROWID以声明不生成rowid字段例如CREATE TABLE IF NOT EXISTS wordcount( word TEXT PRIMARY KEY cnt INTEGER) WITHOUT ROWID;将关键字AUTOINCREMENT使用在声明为WITHOUT ROWID的表不但不起作用还将引发一个错误。SQLiteAPI 函数sqlite3_last_insert_rowid()可以取得最后一条插入的记录的rowid。但sqlite3_last_insert_rowid()是基于当前进程的。也就是说sqlite3_last_insert_rowid()取到的是当前进程最后一次插入记录的rowid。对于不是当前进程插入的记录sqlite3_last_insert_rowi()均返回0。sqlite3_last_insert_rowi()对应的SQL声明为last_insert_rowid()例如select last_insert_rowid() from exam_tbl看完本文有收获请转发分享更多人因为分享是一种美德