SQLite Forum

about "strict" mode
Login
> even if you don't provide a value in the insert, there are explicit rules to auto-generate the value

No.  If you do not specify a value for the rowid then IMPLICIT rules are used to calculate an IMPLICIT value.  You cannot specify how the rowid is computed if you do not specify it explicitly.

You may either *explicitly* specify a value, or if one is not specified then one will be *implicitly* computed for you.

Notwithstanding whether the *value* of the rowid is given *explicitly* or *calculated implicitly*, the resulting *value* is only part of the "stable row data" if the column which is to contain the rowid is declared *explicitly*.  If the column which is to hold the rowid value is not explicitly declared, then the value is ephemeral and is only guaranteed to identify a particular table row during the execution of the query returning the rowid.  It is not a stable attribute of the row and may change (as viewed by a connection) any time that connection does not hold a lock on the database.