【问题标题】:Update a table and display updated rows with a single SQL command使用单个 SQL 命令更新表并显示更新的行
【发布时间】:2013-04-13 20:08:20
【问题描述】:

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

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

我尝试了几种组合,例如:

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

这没用!

【问题讨论】:

    标签: sql postgresql sql-update sql-returning


    【解决方案1】:

    因为这是作业,我给你留点东西。

    单条 SQL 语句

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

    另一种选择(对于更复杂的场景)是data-modifying CTE。您仍然需要 RETURNING 子句。

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

    单笔交易

    如果允许多条语句,另一种选择是简单的UPDATE 加上简单的SELECT 包装成transaction

    【讨论】:

    • 嗨!感谢您的提示!这很好用。你知道是否有另一种方法可以在不使用返回的情况下做同样的事情。我的意思是,只使用 SELECT、UPDATE SET 和其他基本子句。我的老师说我们必须只使用我们到目前为止所学的从句,并且不包括 RETURNING。
    猜你喜欢
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多