How to Update Rows in Redshift
Last updated July 25, 2026 · By the SaturnSQL team
Use UPDATE ... SET ... WHERE, with FROM to join another table. Under the hood Redshift marks old rows deleted and appends new ones, so large updates leave dead rows that VACUUM later reclaims.
Redshift is columnar and does not update in place. Every UPDATE marks the old row deleted and appends a new version, so the table grows and scans get slower until VACUUM reclaims the space and restores sort order. For large changes, rebuilding the table with CTAS is often faster than updating it.
UPDATE orders
SET status = 'shipped'
WHERE id = 42;Update from another table
Note the syntax: the target table is not aliased and is referenced by its full name in the WHERE clause, unlike the Postgres pattern of aliasing it. The join condition must be in WHERE. If a row in customers matches several times, Redshift picks one arbitrarily rather than raising an error.
UPDATE orders
SET region = c.region
FROM customers c
WHERE c.id = orders.customer_id;Run this in SaturnSQL
SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.
Try it free