Обновить поле в DO SET UPDATE на основе значения результата запроса.Python

Программы на Python
Anonymous
Обновить поле в DO SET UPDATE на основе значения результата запроса.

Сообщение Anonymous »

У меня следующий запрос:

Код: Выделить всё

INSERT INTO table1 (
col1,
col2,
col3
)
VALUES (
%s,
(SELECT id FROM table2 WHERE name = %s),
%s,
)
ON CONFLICT (fk_id)
DO UPDATE SET
col1 = %s,
***col2 = (SELECT id FROM table2 WHERE name = %s),***
col3 = %s
WHERE EXISTS (
SELECT 1 FROM table1 WHERE fk_id = %s
)
RETURNING id;
Тот, что выделен жирным шрифтом или курсивом, вызывает «ошибку строкового литерала». Но когда он удален, запрос работает нормально. Есть ли какой-либо способ получить значение из другой таблицы внутри предложения DO SET UPDATE?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... sult-value

Вернуться в «Python»