I am using Xerial latest jdbc driver for sqlite (version 3.7.2) It does not seem to have support for Statement RETURN_GENERATED_KEYS. I keep getting “not implemented by SQLite JDBC driver” in the SQLException.
I really do not want to make another select call (e.g select id from tasks order by 1 desc limit 1 ) in order to get the latest Id created by an auto-increment field. I need to use that id to populate a field in another table.
Are there any better ways of achieving this using sqlite-jdbc driver ?
If upgrading/replacing the JDBC driver is not an option (the SQLiteJDBC seem to support it), then you really need to fire a
SELECT last_insert_rowid()query to obtain the generated key. To avoid race conditions with concurrent inserts, fire it in a transaction.