Использование data-modifying CTE для цепочек операций в одном запросе! — 25 апреля 2026 г. в 17:42:27.815
Использование data-modifying CTE для цепочек операций в одном запросе! Обычно изменения и чтение делают разными запросами, что создаёт лишние round-trip и риск рассинхронизации данных между операциями: UPDATE orders SET status = 'processing' WHERE id = 123 RETURNING *; RETURNING уже даёт доступ к изменённым строкам, но data-modifying CTE позволяет пойти дальше и использовать их в следующих шагах: WITH updated AS (...) CTE фиксирует результат изменения и гарантирует, что последующие операции работают с тем же набором строк в рамках одного statement: INSERT INTO audit_log (order_id, new_status) SELECT id, status FROM updated; Теперь можно атомарно обновить данные и сразу записать аудит, отправить в очередь или выполнить дополнительную логику без повторных SELECT. data-modifying CTE — это способ строить сложные, но безопасные цепочки операций внутри одного SQL-запроса. SQL Ready | #совет

