Set start value for AUTOINCREMENT in SQLite
up vote 11 down vote favorite share [g+] |
How can I set the start value for an AUTOINCREMENT field in SQLite? sqlite
|
4 Answers
oldest
votes
up vote 5 down vote accepted |
Explicitly insert the value-1 into the table, then delete the row. |
|||
|
up vote 10 down vote |
From the SQLite web site:
I tried this, and it works:
Where n+1 is the next ROWID you want and table is the table name. Could this be dangerous to the integrity of my database? |
|||
|
up vote 3 down vote |
One way to do it is to insert the first row specifying explicitly the row id you want to start with. SQLite will then insert row ids that are higher than the previous highest. |
up vote 0 down vote |
In solution with SQLITE_SEQUENCE table, the entry into this table seems to be added after the first insert into the table with the autoincrement column is added. In some cases this might cause troubles (i.e autoincrement still starts from 1, not from wanted value). |
SQLite keeps track of the largest ROWID that a table has ever held using the special SQLITE_SEQUENCE
table. The SQLITE_SEQUENCE
table is created and initialized automatically whenever a normal table that contains an AUTOINCREMENT column is created. The content of the SQLITE_SEQUENCE
table can be modified using ordinary UPDATE, INSERT, and DELETE statements. But making modifications to this table will likely perturb the AUTOINCREMENT key generation algorithm. Make sure you know what you are doing before you undertake such changes.