I begin a transaction, which is to insert several records into a table. Can I select the latest inserted record out of the database before the transaction commit?
Yes, during or after the transaction you can use the last_insert_rowid() function.
The last_insert_rowid() function returns the ROWID of the last row inserted from the database connection which invoked the function.
In other words:
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table T (C);
sqlite> insert into T values ('hello');
sqlite> select last_insert_rowid();
1
sqlite> BEGIN;
sqlite> insert into T values ('test 2');
sqlite> select last_insert_rowid();
2
sqlite> select rowid,* from T;
1|hello
2|test 2
sqlite> ROLLBACK;
sqlite> select last_insert_rowid();
2
sqlite> select rowid,* from T;
1|hello
sqlite>