Updated on 2025-05-29 GMT+08:00

DROP FUNCTION

Description

Deletes a function.

Precautions

If a function involves operations on temporary tables, DROP FUNCTION cannot be used.

Only the function owner or a user with the DROP permission can run the DROP FUNCTION command. By default, system administrators have the permission.

Only the initial user has the permission to perform the DROP operation on the functions of the initial user.

Syntax

1
2
DROP FUNCTION [ IF EXISTS ] function_name 
[ ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) [ CASCADE | RESTRICT ] ];

Parameters

  • IF EXISTS

    Reports a notice instead of an error if the specified function does not exist.

  • function_name

    Specifies the name of the function to be deleted.

    Value range: an existing function name

  • argmode

    Specifies the parameter mode of the function.

  • argname

    Specifies the parameter name of the function.

  • argtype

    Specifies the parameter type of the function.

  • CASCADE | RESTRICT
    • CASCADE: automatically deletes the objects that depend on the function.
    • RESTRICT: refuses to delete the function if any objects depend on it. This is the default action.

Examples

  • Delete the list of parameters that can be omitted when a function.
    -- Create a function.
    gaussdb=# CREATE FUNCTION func_test(varchar) RETURN VARCHAR AS
    BEGIN 
        RETURN $1||_'test';
    END;
    /
    
    -- Delete the function.
    gaussdb=# DROP FUNCTION func_test;
  • Delete a function with the same name.
    If a function with the same name exists, add a parameter list when deleting the function. Otherwise, an error is reported.
    -- Create a function.
    gaussdb=# CREATE FUNCTION func_add(int) RETURNS int AS $$
    BEGIN 
        RETURN $1+10;
    END;
    $$ LANGUAGE PLPGSQL;
    
    -- func_add is an overloaded function.
    gaussdb=# CREATE FUNCTION func_add(int,int) RETURNS int AS $$
    BEGIN 
        RETURN $1+$2;
    END;
    $$ LANGUAGE PLPGSQL;
    
    -- Delete the function.
    gaussdb=# DROP FUNCTION func_add(int);
    gaussdb=# DROP FUNCTION func_add(int,int);

Helpful Links

ALTER FUNCTION and CREATE FUNCTION