PL/pgSQL的文档说,变量的声明和赋值完成:=.但是简单,更短,更现代 (见脚注) =似乎按预期工作:
CREATE OR REPLACE FUNCTION foo() RETURNS int AS $$
DECLARE
i int;
BEGIN
i = 0;
WHILE NOT i = 25 LOOP
i = i + 1;
i = i * i;
END LOOP;
RETURN i;
END;
$$ LANGUAGE plpgsql;
> SELECT foo();
25
Run Code Online (Sandbox Code Playgroud)
请注意,Pl/pgSQL可以清楚地区分分配和比较,如行中所示
WHILE NOT i = 25 LOOP
Run Code Online (Sandbox Code Playgroud)
所以,问题是:
=代替的已知后果:=?编辑/脚注:
请使用" 简短,不完整和错误的编程语言历史 "中的"更现代"部分:
1970年 - Niklaus Wirth创建了Pascal,一种程序语言.批评者立即谴责Pascal,因为它使用"x:= x + y"语法而不是更熟悉的类C"x = x + y".尽管C还没有被发明,但这种批评仍在发生. …