UPDATE в PostgreSQL: обновление данных

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