我已经在特定模式中创建了一些函数,但是“函数”部分里面什么都没有。
我创建了像这个例子这样的函数:
CREATE FUNCTION pymax (a integer, b integer)
RETURNS integer
AS $$
if a > b:
return a
return b
$$ LANGUAGE plpythonu;
我已经在特定模式中创建了一些函数,但是“函数”部分里面什么都没有。
我创建了像这个例子这样的函数:
CREATE FUNCTION pymax (a integer, b integer)
RETURNS integer
AS $$
if a > b:
return a
return b
$$ LANGUAGE plpythonu;
如果名称不是模式限定的,则会在当前模式中创建一个函数(与其他对象一样)。您当前的架构由 的当前设置定义search_path
。
要查看您的当前search_path
:
SHOW search_path;
有多种方法可以设置search_path
,更多在这个相关答案中:
search_path 如何影响标识符解析和“当前模式”
要确定数据库中是否存在任何具有相似名称的函数:
SELECT n.nspname, p.proname, pg_get_function_arguments(p.oid) As args
FROM pg_proc p
JOIN pg_namespace n ON n.oid = p.pronamespace
WHERE p.proname ILIKE '%pymax%';
如果没有找到任何东西,则该数据库中不存在这些函数。也许您错误地在另一个数据库中创建了它?