给出一张表:
CREATE TABLE Foo(
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT
);
Run Code Online (Sandbox Code Playgroud)
如何使用以下命令返回同时插入的多行的ID:
INSERT INTO Foo (Name) VALUES
('A'),
('B'),
('C');
Run Code Online (Sandbox Code Playgroud)
我知道last_insert_rowid()但我没有找到任何将它用于多行的示例.
在这个SQL Server示例中可以看到我想要实现的目标:
DECLARE @InsertedRows AS TABLE (Id BIGINT);
INSERT INTO [Foo] (Name) OUTPUT Inserted.Id INTO @InsertedRows VALUES
('A'),
('B'),
('C');
SELECT Id FROM @InsertedRows;
Run Code Online (Sandbox Code Playgroud)
很感谢任何形式的帮助.
小智 4
使用 RETURNING 子句。该功能自版本 3.35.0 (2021-03-12) 起可用。
对于你的例子:
INSERT INTO "Foo" ("Name") VALUES
('A'),
('B'),
('C')
RETURNING "Id";
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此文档链接:https://www.sqlite.org/lang_returning.html
| 归档时间: |
|
| 查看次数: |
725 次 |
| 最近记录: |