使用单个SQL命令更新表并显示更新的行

时间:2013-04-13 20:08:21

标签: sql postgresql sql-update sql-returning

我需要你对PostgreSQL的帮助。我有一个功课,我必须更新一个表的列并显示已更新的所有信息,但我必须使用一个命令来完成所有这些。更糟糕的是,我只能使用SELECT,UPDATE,SET,WHERE等基本子句。

这可能吗?我没有找到任何例子。

我尝试了几种组合:

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

这不起作用!

1 个答案:

答案 0 :(得分:2)

由于这是作业,我会为你留下一些东西。

单个SQL语句

开始阅读RETURNING clause of the UPDATE command in the manual

另一种替代方案(对于更复杂的方案)是data-modifying CTE。你仍然需要RETURNING条款。

或者您可以在一个声明中调用create a function,但这会违反您仅使用简单DML命令的要求。

单笔交易

如果允许多个语句,则另一个选项是简单的UPDATE加上简单SELECT包含在transaction中。