Обновите таблицу и отобразите обновленные строки с помощью одной команды 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 завернутый в сделку.

Другие вопросы по тегам