SQLite3中特定表的最后插入的rowid

ecr0jaav  于 2023-10-23  发布在  SQLite
关注(0)|答案(2)|浏览(163)

有没有办法在SQLite3中获取特定表的最后插入的rowid?有一个函数last_insert_rowid,它将最近成功的查询的rowid返回到rowid表或虚拟表中。但是,我想知道是否有这样一种方法来获取特定表的最后插入的rowid。

cnjp1d6j

cnjp1d6j1#

所有表中最后插入的rowid存储在内部表sqlite_sequence中,您可以像查询任何其他表一样查询该表。请确保您的主键ID具有属性autoincrement,否则它不会在那里列出。

sqlite> create table Test1 (id integer primary key autoincrement, text string);
sqlite> create table Test2 (id integer primary key autoincrement, text string);

[...]  -- Insert rows here

sqlite> select rowid from Test1;
id        
----------
1         
2         
sqlite> select rowid from Test2;
id        
----------
1         
2         
3
sqlite> select * from sqlite_sequence;
name        seq       
----------  ----------
Test1       2         
Test2       3
rryofs0p

rryofs0p2#

下面可能是最简单和最可靠的方法-只需将Returning子句与RowId一起使用:

insert into MyTable (Column1, Column2) Values (Val1, Val2) Returning RowId;

相关问题