假设我创建了两个函数:
create function test() returns int
as
$$
select 1::int
$$
language sql;
create function test(int default 5) returns int
as
$$
select $1
$$
language sql;
如果我这样做:
select * from test();
我收到错误消息function test() is not unique
。有没有办法调用上面的第一个函数?同样,如何使用默认值调用上面的第二个函数?
答案 0 :(得分:2)
不 - 没有方法可以记录:
https://www.postgresql.org/docs/current/static/typeconv-func.html
考虑具有参数默认值的函数 匹配任何省略零或多个默认参数的调用 位置。 如果多个此类函数与一个调用匹配,则为一个 使用最早出现在搜索路径中。 如果有两个或者 具有相同参数类型的相同模式中的更多此类函数 在非违约的位置(如果有的话,这是可能的) 不同的默认参数集),系统将无法实现 确定哪个更喜欢,以及“模糊函数调用” 如果找不到与呼叫更好的匹配,将导致错误。
强调我的。