Records in a table do have a "record number" that reflects the order in which the records were added called the "rowid". You can read about it here <https://sqlite.org/rowidtable.html>. If your `"progressive_no"` is simply a number that is one bigger than the biggest number that exists so far then you can declare your MyTable as: ``` create table MyTable ( progressive_no integer primary key, ColumnX text not null ); create index MyTableIndex on MyTable (ColumnX); ``` whenever you do an insert like: ``` insert into MyTable (ColumnX) values (?); ``` then the new record will automatically be assigned a `progressive_no` of `coalesce(max(progressive_no)+1, 1)`. This is a 64-bit integer so when the next record (records after # 9223372036854775807) then a "free number" will randomly be chosen if one exists for the new record number. See <https://sqlite.org/autoinc.html>