SQLLab
dmlНачальный

UPDATE

Изменяет значения в существующих строках таблицы.

Синтаксис
UPDATE table SET col1 = val1, col2 = val2 WHERE condition;

Объяснение

UPDATE изменяет колонки в строках, подходящих под условие WHERE. Без WHERE обновятся ВСЕ строки таблицы — частая случайная ошибка, поэтому в редакторах и клиентах для прод-БД стоит сначала прогонять SELECT с тем же WHERE, чтобы увидеть, какие строки затронутся. PostgreSQL поддерживает UPDATE ... FROM — можно обновлять одну таблицу на основе данных из другой, без вложенного подзапроса на каждое поле.

Пример

UPDATE users SET is_active = false WHERE last_login < '2025-01-01';

-- UPDATE ... FROM: обновление на основе другой таблицы (PostgreSQL)
UPDATE orders o
SET status = 'expired'
FROM subscriptions s
WHERE o.user_id = s.user_id AND s.expires_at < now();