Int != Integer

A very annoying 'feature' of SQLite, it treats INT & INTEGER as different when considering in CREATE TABLE if the PRIMARY KEY column in a table should be marked as the rowid (used in autoincrement) or not. So although the column is created as an integer, it won't be incremented, the default hidden rowid column will be used instead. See "rowid":https://www.sqlite.org/langcreatetable.html#rowid for the gory details.

So, in summary, always write INTEGER.

CREATE TABLE company (id INTEGER PRIMARY KEY, name VARCHAR(255);