PostgreSQL 函数的过程
CREATE [ OR REPLACE ] FUNCTION
name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
[ RETURNS rettype
| RETURNS TABLE ( column_name column_type [, ...] ) ]
{ LANGUAGE lang_name
| WINDOW
| IMMUTABLE | STABLE | VOLATILE
| CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
| [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
| COST execution_cost
| ROWS result_rows
| SET configuration_parameter { TO value | = value | FROM CURRENT }
| AS 'definition'
| AS 'obj_file', 'link_symbol'
} ...
[ WITH ( attribute [, ...] ) ]
函数稳定级别:IMMUTABLE STABLE VOLATILE
PostgreSQL中的函数在定义时有三种稳定性级别:
VOLATILE(不稳定)、STABLE(稳定)和IMMUTABLE(非常稳定)。
默认情况下,CREATE FUNCTION创建函数的稳定性为VOLATILE。稳定性级别使得优化器可以判断不同函数的行为。
MMUTABLE(非常稳

本文深入探讨了PostgreSQL函数的三种稳定性级别:IMMUTABLE(非常稳定)、STABLE(稳定)和VOLATILE(不稳定)。分别介绍了它们的含义、应用场景及如何影响函数的优化。了解这些概念有助于优化数据库查询性能。
最低0.47元/天 解锁文章
905

被折叠的 条评论
为什么被折叠?



