使用 Dapper 和 Sqlite,如何获取新插入的行 ID

Using Dapper and Sqlite how do I get a newly inserted row id

提问人:Rod 提问时间:10/31/2023 最后编辑:Amit JoshiRod 更新时间:11/1/2023 访问量:45

问:

我发现以下sqlite将让我在Dapper中插入id,但是,这在并发场景中安全吗?

string sql = @"
    insert into MyTable values (null, @name);  
    select last_insert_rowid();";
sql sqlite sql-insert

评论

0赞 Gyro Gearloose 11/1/2023
选择 last_insert_rowid();不是特定于表的。如果您不是唯一使用该数据库的人,或者您自己同时访问它,则这只会偶然起作用。所以总体答案是否定的。

答:

0赞 Gyro Gearloose 11/1/2023 #1

你问“......这在并发场景中安全吗?“,简单的答案是”否”。

但是,您可以通过执行“select id,其中指定某些主键或 UNIQUE 字段的值”来获取 id"