Postgresql function部分定义及翻译

CREATE [ OR REPLACE ] FUNCTION

    Name函数名 ( [ [ argmode 参数形式:IN OUT INOUT VARIADIC 默认为IN ] [ argname 参数名\列名 ] argtype 变量类型 [ { DEFAULT | = }default_expr ] [, ...] 默认值] )

    [ RETURNS rettype 返回值类型:如果是out\inout参数可以省略,否则他与输出结果的类型一致,如果多个输出就是RECORD。SETOF修饰符表示返回一组项目,并通过表名.列名%TYPE来引用列类型

      | RETURNS TABLE (column_name column_type [, ...] ) ] 另一种形式的声明输出

  { LANGUAGE lang_name SQL\C\internal…

    | WINDOW 窗口函数仅用于C

| IMMUTABLE 不能修改数据库不能查找 | STABLE适合数据库查找 | VOLATILE 不稳定| [ NOT ] LEAKPROOF仅超级用户设置

    | CALLED ON NULL INPUT 某些参数为空时也可调用| RETURNS NULL ON NULL INPUT | STRICT 后两个一旦有参数为null则返回null

    | [ EXTERNAL ] SECURITYINVOKER 默认设置 | [ EXTERNAL ] SECURITY DEFINER 创建它的用户执行

    | COST execution_cost 给出函数的估计执行成本的正数,单位为cpu_operator_cost。 如果函数返回一个集合,则这是每个返回行的成本。 如果未指定成本,则假定C语言和内部函数为1个单元,其他语言为100个单元。较大的值会导致规划人员尝试避免比必要时更频繁地评估功能。

    | ROWS result_rows 默认1000行,期望返回的行数仅当声明返回一个集合才允许

    | SETconfiguration_parameter { TO value | = value | FROM CURRENT } SET子句在输入函数时设置参数,退出时恢复之前值。

    | AS 'definition' 描述,适用于$$引用否则需要将‘和/通过输入两次来进行转义

    | AS 'obj_file','link_symbol' C中应用

  } ...

[ WITH ( attribute[, ...] ) ] 可放入isStrict isCachable


replace替换函数时, 更改参数名称有限制,不能更改已分配的任何参数的名称,如果多个输出参数,则不能更改输出参数的名称。

参考:

https://www.postgresql.org/docs/9.3/static/sql-createfunction.html


猜你喜欢

转载自blog.csdn.net/weixin_42153684/article/details/80223879