В SQLite нет предложения RETURNING или чего-то подобного, и он не допускает INSERT в CTE.
Таким образом, единственное решение - ВЫБРАТЬ по значениям, которые были только что вставлены:
INSERT INTO public.profile (title, value, account_id)
VALUES
(5, 'Wass', "wewewewwew"),
(6, 'sadas', "sdsdadkf");
SELECT id
FROM public.profile
WHERE (title, value, account_id) IN ( (5, 'Wass', "wewewewwew"),
(6, 'sadas', "sdsdadkf") );
Или, конечно, для этого необходимо, чтобы все вставленные данные или их часть были определены как УНИКАЛЬНЫЕ по индексу.
Если такого уникального ограничения нет (то есть некоторые вставленные данные могут полностью дублировать данные, которые уже присутствуют в таблице), но в вставляемых значениях таких дубликатов нет, вы можете использовать
INSERT INTO public.profile (title, value, account_id)
VALUES
(5, 'Wass', "wewewewwew"),
(6, 'sadas', "sdsdadkf");
SELECT MAX(id) id
FROM public.profile
WHERE (title, value, account_id) IN ( (5, 'Wass', "wewewewwew"),
(6, 'sadas', "sdsdadkf") )
GROUP BY title, value, account_id;
Если во вставленных значениях есть дубликаты ... Я не знаю, как решить.