SQLite3中特定表最后插入的rowid

问题描述 投票:0回答:2

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

sql sqlite insert rowid
2个回答
2
投票

所有表最后插入的

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         

0
投票

下面可能是最简单、最可靠的方法 - 只需使用带有 RowId 的 Returning 子句即可:

insert into MyTable (Column1, Column2) Values (Val1, Val2) Returning RowId;
© www.soinside.com 2019 - 2024. All rights reserved.