2014-12-17 3 views
0

Я хочу использовать отборное заявление после обновления таблицы в PostgreSQLPostgreSQL: выберите значение после обновления

, например

update mytable 
set val1 = 'Foo' 
where val13=1234 and val12=12 

Теперь я использую

select val2 from mytable 
where val14=(select max(val14) from mytable) 

это, чтобы получить val2 после обновления statement.So мой вопрос, как сделать и обновление и выбрать в одном заявлении?

+1

Ваш 'select' использует где положение о' val14', который не изменяется ваше заявление обновлений. Как 'select' относится к вашему оператору' update'? В общем: чтобы получить обновленные строки, просто добавьте 'return *' в инструкцию update. –

ответ

1

Если я правильно понял, вы, как это с помощью CTE

with cte as (
update mytable set val1 = 'Foo' where val13=1234 and val12=12 returning * 
) 
select * from cte where val14=(select max(val14) from mytable) 
Смежные вопросы