You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL多字段条件更新咨询:字段复制与固定字符串赋值

PostgreSQL 字段更新解决方案

没问题,针对你要更新PostgreSQL表中两个字段的需求,我给你整理了对应的SQL解决方案,分场景说明会更清晰:

1. 更新custom_t4字段

当记录的custom_t4为空且parent_id等于0时,把custom_t4替换成Dossier_client字段的值,对应的SQL语句是:

UPDATE your_table_name
SET custom_t4 = Dossier_client
WHERE custom_t4 IS NULL AND parent_id = 0;

👉 注意事项:

  • 记得把your_table_name替换成你实际的表名
  • 如果你的“为空”指的是空白字符串(而非数据库NULL值),请把custom_t4 IS NULL改成custom_t4 = '',根据实际数据情况调整

2. 更新custom_t15字段

当记录的custom_t15为空时,将其替换为folder_id字段的值,对应的SQL语句是:

UPDATE your_table_name
SET custom_t15 = folder_id
WHERE custom_t15 IS NULL;

同样,如果是空白字符串的场景,替换判断条件即可。

可选:合并成一条UPDATE语句

如果你想一次性完成两个更新操作,可以用CASE语句整合,这样只需要执行一次更新,还能避免重复扫描表:

UPDATE your_table_name
SET 
    custom_t4 = CASE 
        WHEN custom_t4 IS NULL AND parent_id = 0 THEN Dossier_client
        ELSE custom_t4
    END,
    custom_t15 = CASE
        WHEN custom_t15 IS NULL THEN folder_id
        ELSE custom_t15
    END
WHERE 
    (custom_t4 IS NULL AND parent_id = 0) 
    OR custom_t15 IS NULL;

WHERE子句确保只有需要修改的行才会被更新,能节省性能开销。

额外建议

在执行UPDATE之前,强烈建议先跑一下SELECT语句验证要更新的记录是否正确,比如:

-- 检查custom_t4要更新的记录
SELECT * FROM your_table_name WHERE custom_t4 IS NULL AND parent_id = 0;

-- 检查custom_t15要更新的记录
SELECT * FROM your_table_name WHERE custom_t15 IS NULL;

如果你的表数据量很大,考虑给parent_id、custom_t4、custom_t15这些字段加个索引,能显著提升更新速度。

内容的提问来源于stack exchange,提问作者Nathan Cheval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:04:04