Актуализирайте таблица и покажете актуализирани редове с една SQL команда

Имам нужда от вашата помощ с PostgreSQL. Имам домашна работа, в която трябва да актуализирам колона от таблица и да покажа цялата информация, която е актуализирана, но трябва да използвам една команда, за да направя всичко това. Дори по-лошо, мога просто да използвам основни клаузи като SELECT, UPDATE, SET, WHERE и т.н.

Това възможно ли е? Не намерих никакъв пример.

Пробвах няколко комбинации като:

SELECT * FROM customer 
(UPDATE custumer SET bithdate = bithdate + INTERVAL '1 DAY'
 WHERE   bithcity = 'New York');

Това не проработи!


person user2233540    schedule 13.04.2013    source източник


Отговори (1)


Тъй като това е домашно, ще оставя нещо за вас.

Единичен SQL оператор

Започнете да четете за RETURNING клаузата на UPDATE команда в ръководството.

Друга алтернатива (за по-сложни сценарии) би била CTE за модифициране на данни. Все още се нуждаете от клаузата RETURNING за това.

Или бихте могли да създадете функция, която можете да извикате в един декларация, но това би нарушило вашето изискване да използвате само прости DML команди.

Единична транзакция

Ако е позволено повече от един израз, друга опция би била просто UPDATE плюс просто SELECT, обвито в транзакция.

person Erwin Brandstetter    schedule 13.04.2013
comment
здрасти Благодаря за съвета! Това работи много добре. Знаете ли дали има друг начин да направите същото, без да използвате RETURNING. Имам предвид просто използване на SELECT, UPDATE SET и други основни клаузи. Учителят ми каза, че трябва да използваме само клаузи, които сме научили досега, и RETURNING не е включено. - person user2233540; 14.04.2013