Для выполнения нескольких операций в одном SQL-запросе можно использовать конструкцию "WITH". "WITH" позволяет создать временное представление (common table expression - CTE), которое может быть использовано в последующих операциях.
Вот пример, как выполнить несколько операций в одном SQL-запросе с использованием "WITH":
WITH cte AS ( SELECT id, name FROM clients WHERE age > 30 ), updated_cte AS ( UPDATE cte SET name = 'New Name' RETURNING * ), inserted_cte AS ( INSERT INTO new_clients (id, name) SELECT id, name FROM updated_cte RETURNING * ) SELECT * FROM inserted_cte;
В данном примере выполняются три операции:
1. Создается CTE "cte", который выбирает клиентов старше 30 лет из таблицы "clients".
2. CTE "cte" используется для обновления имен клиентов на "New Name" в таблице "clients". Результаты обновления сохраняются в CTE "updated_cte".
3. CTE "updated_cte" используется для вставки обновленных данных в таблицу "new_clients". Результаты вставки сохраняются в CTE "inserted_cte".
4. В итоге происходит выборка всех данных из CTE "inserted_cte".
Таким образом, в результате выполнения этого SQL-запроса мы получим все новые данные клиентов, старше 30 лет, с обновленными именами, которые были вставлены в таблицу "new_clients".