Ste*_*ger 4 sql postgresql plpgsql
问题:我想测试PostgreSQL中的if语句:
IF (SELECT COUNT(*) FROM pg_language WHERE lanname = 'plpgsql') > 0 THEN
PRINT 'Good'
ELSE
PRINT 'Bad'
END IF;
Run Code Online (Sandbox Code Playgroud)
现在这会在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;
$$;
Run Code Online (Sandbox Code Playgroud)
如果您只想测试代码片段而不必经历构建和删除函数的所有麻烦,那么您可以使用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;
$$;
Run Code Online (Sandbox Code Playgroud)
你需要9.0+才能使用DO.
| 归档时间: |
|
| 查看次数: |
14099 次 |
| 最近记录: |