pg中drop function报错不存在

在pg中drop function会报错不存在,或者报错语法错误:

在这里需要注意一下,drop function的时候,需要带上function中定义的各个变量的类型。语法是:
DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
[ CASCADE | RESTRICT ]

在pg中,我们可以通过pg_proc看有哪些funcition,但是pg_proc中的变量类型,虽然在proargtypes中有记录,但是它是一个数字编码,需要通过::regtype[]来转换一下成可识别的类型。
所以,你要先找出这个function的各个变量的类型,可以用下面的语句查找:

此时运行

就可以正常删除了。

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据