Оператор UPDATE в PostgreSQL используется для изменения существующих данных в таблице. Он позволяет обновлять отдельные или несколько строк, применять фильтрацию и использовать сложные выражения.
Основы оператора UPDATE
Базовый синтаксис:
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;Обновление одного поля
UPDATE users SET age = 31 WHERE name = 'Алексей';Обновление нескольких полей
UPDATE users SET age = 31, city = 'Москва' WHERE name = 'Алексей';Обновление всех строк таблицы
Если WHERE не используется, обновляются все строки:
UPDATE users SET status = 1;Обновление с условием
Можно использовать сложные условия:
UPDATE users SET discount = 10 WHERE age > 50 AND city = 'Санкт-Петербург';Использование подзапросов
Значения можно обновлять на основе данных из других таблиц:
UPDATE users SET discount = (SELECT max_discount FROM promotions WHERE users.city = promotions.city);Возвращение обновленных данных
Для получения обновленных значений используется RETURNING:
UPDATE users SET age = age + 1 WHERE name = 'Алексей' RETURNING *;