首页 文章

如何在PostgreSQL中测试if语句?

提问于
浏览
4

问题:我想测试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之前,如何切换语言?

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

Edit:

解决方法:

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;
$$;

1 回答

  • 9

    如果你只是想测试代码片段而不经历构建和删除函数的所有麻烦,那么你可以使用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 .

相关问题