Database 我正在尝试进行一次大规模的PostgreSQL更新,但无法找到正确的方法

Database 我正在尝试进行一次大规模的PostgreSQL更新,但无法找到正确的方法,database,postgresql,postgresql-8.1,Database,Postgresql,Postgresql 8.1,我正试图在PostgreSQL 8.1.23中运行类似的数据库更新。我需要做这个更新与约800个ID在同一时间。任何帮助都将不胜感激。您可以简化为: UPDATE member_copy SET locked_date = CURRENT_DATE, notes = ( SELECT notes FROM member_copy WHERE ID = 17579 ) || ' CLOSED' WHERE I

我正试图在PostgreSQL 8.1.23中运行类似的数据库更新。我需要做这个更新与约800个ID在同一时间。任何帮助都将不胜感激。

您可以简化为:

    UPDATE member_copy
SET locked_date = CURRENT_DATE,
 notes = (
    SELECT
        notes
    FROM
        member_copy
    WHERE
        ID = 17579
) || ' CLOSED'
WHERE
    ID = 17579
用于捕捉
注释为空的情况。
甚至应该在古代博士后8.1中工作。但您确实必须升级到当前版本


在现代的Postgres中,我会使用一个临时ID表(或一个子选择),并在
更新中加入它

您现在应该计划升级到受支持的版本。8.1已停止维护多年。我很愿意,但这不是我的决定。当然,您至少可以指出不这样做可能导致的安全问题。也许我是有特权的,但我还没有遇到一个能把这种问题掩盖起来的经理。谢谢!这对我来说非常有效。不幸的是,升级不是我的要求,但有一个新的网站计划很快。
UPDATE member_copy
SET locked_date = CURRENT_DATE
   ,notes = COALESCE(notes || ' ', '') || 'CLOSED'
WHERE id IN (17579, 12345, ...); --- 800 IDs