Как выполнить UPDATE записи после INSERT по Id который возвращает INSERT. PostgreSQL
Необходимо проапдейтить поле в записи, которую только заинсертил, одним запросом. Пробовал такой вариант:
WITH inserted AS (INSERT INTO table (name, age) VALUES ('user', 18) RETURNING id)
UPDATE table
SET user = (SELECT id FROM inserted) || 'user'
WHERE id = (SELECT id FROM inserted)
RETURNING id
Инсерт отрабатывает, запись добавляется, а апдейт не выполняется как будто id не возвращается. Пробовал SELECT вместо UPDATE, id возвращается.
Ответы (1 шт):
Автор решения: A ZAV
→ Ссылка
решил вопрос таким образом:
WITH ids AS (SELECT nextval('id_seq') AS id )
INSERT table (id, name, age, user)
VALUES ((select id from ids),'user', 18, (select id from ids)||'user')