What version of SQLite are you using? I am using SQLite version 3.8.11.1
. Primary key values are not resetting.
Create table and insert some data
sqlite> create table test (id integer primary key autoincrement, name varchar(20));
sqlite> select * from test;
sqlite> insert into test (name) values ('hello1');
sqlite> insert into test (name) values ('hello2');
sqlite> select * from test;
id name
---------- ----------
1 hello1
2 hello2
sqlite> select * from sqlite_sequence;
name seq
---------- ----------
test 2
In an autoincrement
column, sqlite keeps information of sequence in sqlite_sequence
internal table that you can query also.
Delete data. Notice that sequence stays as-is.
sqlite> delete from test;
sqlite> select * from sqlite_sequence;
name seq
---------- ----------
test 2
sqlite> select * from test;
sqlite> insert into test (name) values ('world1');
sqlite> insert into test (name) values ('world2');
sqlite> select * from test;
id name
---------- ----------
3 world1
4 world2
sqlite> select * from sqlite_sequence;
name seq
---------- ----------
test 4
Based on this it appears that sequence numbers are staying as-is after deletion. I am using the autoincrement
keyword.