IF you declare the column, then the column is explicit and stable, yes, even if you don't provide a value in the insert, there are explicit rules to auto-generate the value. The implicit rowid that people are talking about is the rowid column that ISN'T defined in the schema, but are able to be read back using several implicitly defined names. something like create table x ( name text primary key; ); insert into x ('Foo'); select rowid, name from x; THAT rowid which was never defined in the schema is not stable and can change if you vacuum the table. Note your case was a given value was 'implicitly generated', and that is stable (the database doesn't kee track of which values were auto-generated, and which were explicitly provided.. In this case, the whole COLUMN was 'implicitly generated', and is not stable.