我有一个数据库,里面安装了一个旧版本的PostGIS.我想轻松删除数据库中的所有函数(它们都来自PostGIS).有没有简单的方法可以做到这一点?即使是简单地提取函数名列表也是可以接受的,因为我可以只做一个大的DROP FUNCTION语句.

推荐答案

A fine answer to this question can be found here:

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 = 'my_messed_up_schema'  order by proname;

Postgresql相关问答推荐

无法从Docker迁移Golang上的两个不同服务到一个数据库'

在Haskell中定义新类型与持久化类型的惯用方法

Select 所有数组类型和维度

正在应用序列化迁移,但数据库没有更改

如何诊断字符编码问题

对 VOLATILE 函数的调用会 destruct SELECT 语句的原子性

如何重新格式化已获取的 psql 查询输出?

当参数大小超过 393166 个字符时,PSQL 准备语句查询挂起

计算每行的多列中的非 NULL 元素

PostgreSQL - 如何获得前一个月和一周的价值?

如何在构建时链接 docker 容器?

当记录包含 json 或字符串的混合时,如何防止 Postgres 中的invalid input syntax for type json

Psycopg2 使用占位符插入表格

在PostgreSQL中 Select 数组列的总和

如何将主键添加到视图?

无法在 postgresql hibernate 中使用名为user的表

如何为 Postgres psql 设置时区?

使用 Postgresql 数据库(OSX Lion)创建 Rails 3.1 应用程序

如何在 psql 中设置默认显示模式

Heroku 上的 Postgres 并将单个表转储到转储文件