sqlite.获取插入id的几种方式

  1. sqlite_sequence
1
2
insert into TbTest(Name, Age) values('usr', 20);
select seq from sqlite_sequence where name='TbTest';
  1. rowid
1
2
3
4
5
6
--表设置了自增列,会生成 rowid 的隐藏列,需要显式查询语句才可以查询出
select rowid from TbTest;
--但是,表没有设置自增列,上面的语句无法查出任何值
--特殊的,表无论是否设置了自增列,但都可以使用聚合函数查询出 rowid
insert into TbTest(Name, Age) values('usr', 20);
select max(rowid) from TbTest;
  1. ID 列
1
2
insert into TbTest(Name, Age) values('usr', 20);
select max(ID) from TbTest;
  1. last_insert_rowid
1
2
3
insert into TbTest(Name, Age) values('usr', 20);
--注意!若此行处有插入临时表的操作,下面的语句获取到的是插入临时表的 rowid
select last_insert_rowid() from TbTest LIMIT 1;