更新时间:2025-05-29 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
DROP FUNCTION
功能描述
删除一个已存在的函数。
注意事项
- 如果函数中涉及对临时表的相关操作,则无法使用DROP FUNCTION删除函数。
 - 只有函数的所有者或者被授予了函数DROP权限的用户才能执行DROP FUNCTION命令,系统管理员默认拥有该权限。
 - 仅初始用户有权对初始用户的函数进行DROP操作。
 
语法格式
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);
 
   父主题: D