在函数体之前或之后声明 "LANGUAGE plpgsql"?
Declare "LANGUAGE plpgsql" before or after the function body?
有什么区别吗:
CREATE FUNCTION func() RETURNS integer
LANGUAGE plpgsql AS $$
declare
begin
-- do something
end
$$;
和
CREATE FUNCTION func() RETURNS INTEGER AS $$
declare
begin
-- do something
end
$$ LANGUAGE plpgsql;
LANGUAGE plpgsql
基本上只需要超出 $$
用法的范围吗?
没有任何区别。
函数体是一个字符串文字。 $$
只是美元引号,也可以是单引号(但最好使用美元引号!):
- What are '$$' used for in PL/pgSQL
- Insert text with single quotes in PostgreSQL
CREATE FUNCTION
是声明性的 SQL-DDL 命令,关键字的顺序非常自由,如 definition in the manual 所示。 (命令定义中花括号内的关键字可以随意排列,其余不能)
我最终决定始终将语言声明与函数头的其余部分放在顶部,在函数体之前。更有意义。
有什么区别吗:
CREATE FUNCTION func() RETURNS integer
LANGUAGE plpgsql AS $$
declare
begin
-- do something
end
$$;
和
CREATE FUNCTION func() RETURNS INTEGER AS $$
declare
begin
-- do something
end
$$ LANGUAGE plpgsql;
LANGUAGE plpgsql
基本上只需要超出 $$
用法的范围吗?
没有任何区别。
函数体是一个字符串文字。 $$
只是美元引号,也可以是单引号(但最好使用美元引号!):
- What are '$$' used for in PL/pgSQL
- Insert text with single quotes in PostgreSQL
CREATE FUNCTION
是声明性的 SQL-DDL 命令,关键字的顺序非常自由,如 definition in the manual 所示。 (命令定义中花括号内的关键字可以随意排列,其余不能)
我最终决定始终将语言声明与函数头的其余部分放在顶部,在函数体之前。更有意义。