我有一个有 5 个参数的函数,
- arguments
p1
,并且p2
是强制性的 - 参数
p3
,p4
和p5
是可选的并且有一个DEFAULT
集合
函数看起来像这样,
CREATE FUNCTION test_func(
p1 int,
p2 int,
p3 int DEFAULT 3,
p4 int DEFAULT 4,
p5 int DEFAULT 5
)
RETURNS int AS
$$
SELECT p5;
$$ LANGUAGE sql;
我可以这样调用它,
SELECT test_func(1,2,3,4,5);
test_func
-----------
5
但我想允许 p3 和 p4 默认并像这样调用它,
SELECT test_func(1,2,5);
有没有办法指定最后一个可选参数 ( p5
) 的值而不给前面的参数 ( p3
, ) 赋值p4
?我不想在调用中硬编码 , 的默认值p3
,因为我将来可能需要更改它们的默认值。p4
test_func
您可以简单地使用混合表示法提供第五个参数,
=>
将参数名称与参数分开,从带有一个警告的混合符号的文档中(来自文档),