0

我已经在特定模式中创建了一些函数,但是“函数”部分里面什么都没有。

我创建了像这个例子这样的函数:

CREATE FUNCTION pymax (a integer, b integer)
  RETURNS integer
AS $$
  if a > b:
  return a
return b
$$ LANGUAGE plpythonu;
4

1 回答 1

1

如果名称不是模式限定的,则会在当前模式中创建一个函数(与其他对象一样)。您当前的架构由 的当前设置定义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%';

如果没有找到任何东西,则数据库中不存在这些函数。也许您错误地在另一个数据库中创建了它?

于 2013-04-05T18:36:09.590 回答