详解: https://database.51cto.com/art/201910/603915.htm
https://blog.csdn.net/a158123/article/details/89818537?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2 all first_rank_v2~rank_v25-1-89818537.nonecase
在未做分片的表中,数据库按照表在DBS中的物理地址作为ROWID,此地址在DBS中是固定并且唯一的,所以,未分片表,数据库系统默认为其生成一个隐藏字段叫rowid。而对于分片表,由于不同的记录在不同的DBS中可能有相同的物理地址,所以数据库没有为分片表默认生成ROWID,如果想在这些表上使用ROWID,则需要执行下面的 *** 作:
ALTER TABLE table_name ADD ROWIDS
或在建表时使用 WITH ROWIDS表达式。
通过上面的 *** 作, 数据库会为此表增加一个4字节唯一字段,并自动为此字段增加一个内部索引,并且在sysfragments表中为此索引增加一条记录。
在建完ROWID之后,对ROWID做一下统计更新:
update statistics high for table table_name(rowid)
select * from xxx where rowid='x' rowid 就是你想要的隐藏列 系统自动生成的 编码自动加1的首先,数据库中你是否自定义了字段“ID”如果有的话,就查询字段ID=输入的id值,至于调出其他字段,就看你想要什么字段了啊。
如果你的表是:
字段 类型
ID --》自增
name-》字符
age-》整型
看你要什么信息,如果都要,就select * from 你的表 where ID=输入的id,
如果只想要姓名,那就select name from 你的表 where ID=输入的id。
如果你没有设置ID怎么办。这时候sqlite会默认给你添加一个叫 rowid的字段,因此,把ID改成rowid就可以了。其他的不变。
点反对的人都是垃圾吗?如果反对,说说我错在哪里了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)