如何在创建之前从下一个插入的元素获取 id?

How to get the id from next inserted element before that is created?

我需要从我 table 中插入的未来元素中获取 ID。 我有一个自动增量 ID。

await db.execute('CREATE TABLE Product(Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT)');

假设这是我的 table,其值为:

Id   Name
1    something
2    something2

如果我删除所有项目并插入另一个元素,它会变成这样:

Id   Name
3    something3

如果我再次删除该行,是否可能知道未来 id 的值? 我需要在创建新产品之前获取 id 的未来值。

您可以使用 sqlite_sequence:

select *
from sqlite_sequence;

Here 是一个 db<>fiddle.

我不知道你想做什么,但你可以通过以下方式获取当前 ID。

select * from sqlite_sequence;

它会 return 所有列,它有一个自动递增的 ID。 sqlite_sequence 是一个 table ,它保存了列的名称和当前的 id。 所以你必须过滤你需要的列并自己增加一个id。

如果您只有您的产品 table,并且最后添加的对象的 ID 为 3:

select * from sqlite_sequence where name="Product"

Returns 以下内容:

name     seq
Product  3