Обновите таблицу и отобразите обновленные строки с помощью одной команды SQL
Мне нужна ваша помощь с PostgreSQL. У меня есть домашнее задание, в котором я должен обновить столбец таблицы и отобразить всю информацию, которая была обновлена, но я должен использовать одну команду, чтобы сделать все это. Хуже того, я просто могу использовать основные предложения, такие как SELECT, UPDATE, SET, WHERE и т. Д.
Это возможно? Я не нашел ни одного примера.
Я пробовал несколько комбинаций, таких как:
SELECT * FROM customer
(UPDATE custumer SET bithdate = bithdate + INTERVAL '1 DAY'
WHERE bithcity = 'New York');
Это не сработало!
1 ответ
Так как это домашнее задание, я оставлю кое-что для вас.
Один оператор SQL
Начните читать о RETURNING
пункт оUPDATE
Команда в руководстве.
Другой альтернативой (для более сложных сценариев) будет CTE, модифицирующий данные. Вам все еще нужно RETURNING
пункт для этого.
Или вы можете создать функцию, которую вы можете вызывать одним оператором, но это нарушит ваше требование использовать только простые команды DML.
Разовая транзакция
Если допускается более одного оператора, другой вариант будет простым UPDATE
плюс простой SELECT
завернутый в сделку.