你能改变SQLite(Android)中的_id自动增量字段吗?

Ant*_*ard 1 sqlite android

我有一个带有SQLite的Android应用程序,在创建表时使用以下行:

_id integer primary key autoincrement
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我的用户想要,我可以对此行进行更新并更改_id吗?所以,例如,我将在DB中有两条记录:

1 My First Record
2 My Second Record
Run Code Online (Sandbox Code Playgroud)

在我更新之后,我想要像:

1 My First Record
38 My Second Record
Run Code Online (Sandbox Code Playgroud)

SQLite会允许这个并且很容易适应吗?即自动处理的下一个主键是#39?

CL.*_*CL. 5

记录所示,_id允许更改,并将正确更新自动增量序列.

就试一试吧:

$ sqlite3
SQLite version 3.7.16 2013-01-11 09:58:54
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE MyTable(_id INTEGER PRIMARY KEY AUTOINCREMENT);
sqlite> INSERT INTO MyTable DEFAULT VALUES;
sqlite> INSERT INTO MyTable DEFAULT VALUES;
sqlite> UPDATE MyTable SET _id = 38 WHERE _id = 2;
sqlite> INSERT INTO MyTable DEFAULT VALUES;
sqlite> SELECT * FROM MyTable;
1
38
39
Run Code Online (Sandbox Code Playgroud)