加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在PostgreSQL中测试if语句?

发布时间:2020-12-13 16:04:44 所属栏目:百科 来源:网络整理
导读:问题:我想测试PostgreSQL中的if语句: IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') 0 THEN PRINT 'Good'ELSE PRINT 'Bad'END IF; 现在这会在IF处抛出错误. 据我所知,这是因为我需要使用plpgsql来使用if,print和variables. 到目前为止
问题:我想测试PostgreSQL中的if语句:

IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
    PRINT 'Good'
ELSE
    PRINT 'Bad'
END IF;

现在这会在IF处抛出错误.

据我所知,这是因为我需要使用plpgsql来使用if,print和variables.

到目前为止,我可能还必须使用SELECT而不是print.

在将此语句执行到plpgsql之前,如何切换语言?

我想先测试它,然后我把它放在存储过程中.
用变量等测试代码

编辑:

解决方法:

DO LANGUAGE plpgsql $$
    BEGIN
        IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN 
            RAISE NOTICE 'GOOD';
        ELSE
            RAISE NOTICE 'BAD';
        END IF;
    END;
$$;

解决方法

如果您只想测试代码片段而不必经历构建和删除函数的所有麻烦,那么您可以使用 DO

=> do language plpgsql $$
    begin
        -- Yes,I have a table called pancakes in my playpen database.
        if (select count(*) from pancakes) > 0 then
            raise notice 'Got some';
        else
            raise notice 'Got none';
        end if;
    end;
$$;

你需要9.0才能使用DO.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读