Postgres未分配的记录,有没有一种方法可以测试null?

Eme*_*ski 3 postgresql postgresql-9.3 sql-null

有什么方法可以测试未分配的记录是否为空?(对不起,sqlfiddle不喜欢我的DO块。)谢谢。

DO
$$
DECLARE
r record;
BEGIN

r := null;

if r is null    -- ERROR:  record "r" is not assigned yet
then
end if;

END
$$;
Run Code Online (Sandbox Code Playgroud)

Dan*_*ité 7

可以通过编写以下代码来避免该错误:

   select null into r;
Run Code Online (Sandbox Code Playgroud)

或者:

   r:=row(null);
Run Code Online (Sandbox Code Playgroud)

这样就r可以使用元组结构进行初始化。

仍然要注意,记录变量在涉及NULL的其他方式上是不直观的,并且通常更难以在其基本用例之外使用(光标样式的迭代)。