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

PostgreSQL中如何仅当scm_orgs的token_id非空时执行UPDATE脚本

实现方案

在原有判断scm_repos表存在的逻辑基础上,新增针对scm_orgs表token_id非空的判断即可,修改后的完整脚本如下:

DO '
BEGIN
    IF EXISTS
        (SELECT 1 FROM pg_class where relname=$J$scm_repos$J$)
    THEN
        -- 仅当scm_orgs存在非空token_id记录时执行更新
        IF EXISTS (SELECT 1 FROM scm_orgs WHERE token_id IS NOT NULL)
        THEN
            UPDATE scm_repos repos SET token_id=(SELECT token_id FROM scm_orgs orgs WHERE repos.org_id=orgs.id);
            UPDATE scm_orgs SET token_id = NULL;
        END IF;
    END IF ;
END;
'

如果你的需求是无论第一条UPDATE是否执行,都要清空scm_orgs的token_id,只需把第二条UPDATE语句移到内层IF判断的外侧即可。

你也可以选择不新增嵌套判断,直接在第一条UPDATE语句中添加执行条件,效果完全一致:

UPDATE scm_repos repos 
SET token_id=(SELECT token_id FROM scm_orgs orgs WHERE repos.org_id=orgs.id)
WHERE EXISTS (SELECT 1 FROM scm_orgs WHERE token_id IS NOT NULL);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:06:00