我目前有一个名为User的表,它有一个id列,创建为
'INTEGER PRIMARY KEY'
假设我创建了两个用户,因此表的id为1和2
如果我删除第二个用户并创建第三个id为2,我需要这个为3
因此,似乎Android正在选择下一个可用的ID,如何将其更改为更像序列号?
问候
做吧INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
.以下是文档所说的内容:
如果列的类型为INTEGER PRIMARY KEY AUTOINCREMENT,那么......为新行选择的ROWID至少比同一个表中以前存在的最大ROWID大一个.
AUTOINCREMENT关键字实现的行为与默认行为略有不同.使用AUTOINCREMENT,具有自动选择的ROWID的行保证具有以前从未在同一数据库中使用同一个表的ROWID.并且自动生成的ROWID保证单调递增.
SQLite AUTOINCREMENT
是一个关键字,用于自动递增表中字段的值.我们可以AUTOINCREMENT
在创建具有特定列名称的表时使用关键字自动递增字段值以自动递增它.
该关键字AUTOINCREMENT
只能与INTEGER字段一起使用.句法:
AUTOINCREMENT
关键字的基本用法如下:
CREATE TABLE table_name( column1 INTEGER AUTOINCREMENT, column2 datatype, column3 datatype, ..... columnN datatype, );
例如见下文:考虑COMPANY
如下创建表:
sqlite> CREATE TABLE TB_COMPANY_INFO( ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
现在,将以下记录插入表中TB_COMPANY_INFO
:
INSERT INTO TB_COMPANY_INFO (NAME,AGE,ADDRESS,SALARY) VALUES ( 'MANOJ KUMAR', 40, 'Meerut,UP,INDIA', 200000.00 );
现在选择记录
SELECT *FROM TB_COMPANY_INFO ID NAME AGE ADDRESS SALARY 1 Manoj Kumar 40 Meerut,UP,INDIA 200000.00