【发布时间】:2012-01-09 04:57:40
【问题描述】:
我正在尝试编写一个命令来删除命名空间中的所有函数。我已经找到了一个可以生成 drop 函数脚本的命令:
SELECT 'DROP FUNCTION ' || ns.nspname || '.' || proname || '('
|| oidvectortypes(proargtypes) || ');'
FROM pg_proc INNER JOIN pg_namespace ns ON (pg_proc.pronamespace = ns.oid)
WHERE ns.nspname = 'public' order by proname;
来源:http://www.postgresonline.com/journal/archives/74-How-to-delete-many-functions.html
这将产生类似的东西:
?column?
------------------------------------------
DROP FUNCTION public.function1(bigint);
DROP FUNCTION public.function2();
DROP FUNCTION public.function3(text);
但是,我不知道如何更改代码,以便实际删除函数 - 而不是仅生成命令。
有什么想法吗?
【问题讨论】:
-
请参阅stackoverflow.com/questions/4202135/… 了解“如何执行”位。
标签: sql postgresql plpgsql dynamic-sql