SQLite数据库中rowid使用
来源:互联网 发布:apache怎么安装 编辑:程序博客网 时间:2024/06/05 08:37
SQLite数据库中rowid使用
SQLite中每个表都默认包含一个隐藏列rowid,使用WITHOUT ROWID定义的表除外。通常情况下,rowid可以唯一的标记表中的每个记录。表中插入的第一个条记录的rowid为1,后续插入的记录的rowid依次递增1。即使插入失败,rowid也会被加一。所以,整个表中的rowid并不一定连续,即使用户没有删除过记录。
由于唯一性,所以rowid在很多场合中当作主键使用。在使用的时候,select * from tablename 并不能获取rowid,必须显式的指定。例如,select rowid, * from tablename 才可以获取rowid列。查询rowid的效率非常高,所以直接使用rowid作为查询条件是一个优化查询的好方法。
但是rowid列作为主键,在极端情况下存在隐患。由于rowid值会一直递增,如果达到所允许的最大值9223372036854775807后,它会自动搜索没有被使用的值,重新使用,并不会提示用户。这时,使用rowid排序记录,会产生乱序,并引入其他的逻辑问题。所以,如果用户的数据库存在这种可能的情况,就应该使用AUTOINCREMENT定义主键,从而避免这种问题。使用AUTOINCREMENT设置自增主键,虽然也会遇到9223372036854775807问题,但是它会报错,提示用户,避免产生rowid所引发的问题。
0 0
- SQLite数据库中rowid使用
- sqlite数据库中自增key的设定,autoincrement 和 rowid
- 不建议使用rowid作为sqlite主键
- java中使用sqlite数据库
- c#中使用SQLite数据库
- python 中使用sqlite数据库
- java中使用sqlite数据库
- C#中使用SQLite数据库
- 项目中使用sqlite 数据库
- android 中数据库SQLite使用
- iOS中使用SQLite数据库
- Java中使用Sqlite数据库
- Android中使用Sqlite数据库
- python中使用sqlite数据库
- Qt中使用SQLITE数据库
- Android中SQLite数据库使用
- QT中使用数据库(SQLite)
- oracle数据库中伪列rownum\rowid的使用
- 全面解析Java注解(学习笔记)
- Window8.1下安装Matplotlib库
- 【深度学习】常见优化算法
- 实验1 可视化初步了解
- mybatis常见面试、笔试题汇总
- SQLite数据库中rowid使用
- 实验2 柱状图生成
- 实验3 饼状图生成
- SecureCRT SSH自动化采集优化脚本
- 实验4 可视化简历生成
- C#WinForm程序调用SVG,并动态在SVG图上绑值
- windows7磁盘分区
- 第三十五讲项目四 贪财的富翁
- 作用域根据函数划分