Database 我正在尝试进行一次大规模的PostgreSQL更新,但无法找到正确的方法
我正试图在PostgreSQL 8.1.23中运行类似的数据库更新。我需要做这个更新与约800个ID在同一时间。任何帮助都将不胜感激。您可以简化为: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
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