Оператор 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 *;