我有这个SQL查询
INSERT INTO profile (title, value, account_id)
VALUES
(5, 'Wass', "wewewewwew"), -- HOMETOWN
(6, 'sadas', "sdsdadkf"), -- HOMETOWN
returning account_id AS result;
我需要将其转换为sqlite,这是我所做的
INSERT INTO `public.profile` (title, value, account_id)
VALUES
(5, 'Wass', "wewewewwew"), -- HOMETOWN
(6, 'sadas', "sdsdadkf"), -- HOMETOWN
但是我也需要在sqlite查询中返回列。
谢谢
我认为在Sqlite中是不可能的。但是您可以使用last_insert_rowid()来返回最后插入记录的ROWID。
select last_insert_rowid();
SQLite没有RETURNING子句或类似内容,并且不允许CTE中的INSERT。
因此,唯一的解决方案是根据刚刚插入的值进行SELECT:
INSERT INTO public.profile (title, value, account_id)
VALUES
(5, 'Wass', "wewewewwew"),
(6, 'sadas', "sdsdadkf");
SELECT account_id
FROM public.profile
WHERE (title, value, account_id) IN ( (5, 'Wass', "wewewewwew"),
(6, 'sadas', "sdsdadkf") );