EasyINSERT, UPDATE, DELETE

UPDATE: change order status to shipped

The query

SQL
UPDATE orders
SET
  status = 'shipped',
  shipped_at = NOW()
WHERE order_id IN (
  SELECT order_id FROM orders
  WHERE status = 'processing'
    AND order_date < NOW() - INTERVAL '2 days'
)
RETURNING order_id, status, shipped_at;
Tested against PostgreSQL 16

Note

Bulk status update with IN subquery. RETURNING confirms which rows were changed.

Tables referenced