GaussDB-DROP FUNCTION
功能描述
删除一个已存在的函数。
注意事项
如果函数中涉及对临时表的相关操作,则无法使用DROP FUNCTION删除函数。
只有函数的所有者或者被授予了函数DROP权限的用户才能执行DROP FUNCTION命令,系统管理员默认拥有该权限。
语法格式
| ``` DROP FUNCTION [ IF EXISTS ] function_name [ ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) [ CASCADE | RESTRICT ] ];
| ---------------------------------------------------------------------------------------------------------------------------------- |

#### 参数说明
- **IF EXISTS**
IF EXISTS表示如果函数存在则执行删除操作,函数不存在也不会报错,只是发出一个notice。
- **function_name**
要删除的函数名称。
取值范围:已存在的函数名。
- **argmode**
函数参数的模式。
- **argname**
函数参数的名称。
- **argtype**
函数参数的类型
- **CASCADE | RESTRICT**
- CASCADE:级联删除依赖于函数的对象 。
- RESTRICT:如果有任何依赖对象存在,则拒绝删除该函数(缺省行为)。
#### 示例
- 删除函数可省略参数列表
```
--创建函数。
gaussdb=# CREATE FUNCTION func_test(varchar) RETURN VARCHAR AS
BEGIN
RETURN $1||_'test';
END;
/
--删除函数。
gaussdb=# DROP FUNCTION func_test;
```
- 删除存在同名的函数
[]()[]()如果存在同名函数,删除时需加上参数列表,否则报错。
```
--创建函数。
gaussdb=# CREATE FUNCTION func_add(int) RETURNS int AS $$
BEGIN
RETURN $1+10;
END;
$$ LANGUAGE PLPGSQL;
--重载函数func_add。
gaussdb=# CREATE FUNCTION func_add(int,int) RETURNS int AS $$
BEGIN
RETURN $1+$2;
END;
$$ LANGUAGE PLPGSQL;
--删除函数。
gaussdb=# DROP FUNCTION func_add(int);
gaussdb=# DROP FUNCTION func_add(int,int);
```
#### 相关链接
[ALTER FUNCTION](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0488.html#ZH-CN_TOPIC_0000001865745804),[CREATE FUNCTION](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0546.html#ZH-CN_TOPIC_0000001911586717)
更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>