DROP FUNCTION

DROP FUNCTION — elimina una función

Synopsis

DROP FUNCTION [ IF EXISTS ] nombre [ ( [ [ modo_arg ] [ nombre_arg ] tipo_arg [, ...] ] ) ] [, ...]
    [ CASCADE | RESTRICT ]

Descripción

DROP FUNCTION elimina la definición de una función existente. Para ejecutar este comando, el usuario debe ser el propietario de la función. Se deben especificar los tipos de argumentos de la función, ya que pueden existir varias funciones diferentes con el mismo nombre pero con distintas listas de argumentos.

Parámetros

IF EXISTS

No arroja un error si la función no existe. Se emite una advertencia (notice) en este caso.

nombre

El nombre (opcionalmente calificado por esquema) de una función existente. Si no se especifica una lista de argumentos, el nombre debe ser único en su esquema.

modo_arg

El modo de un argumento: IN, OUT, INOUT o VARIADIC. Si se omite, el valor predeterminado es IN. Ten en cuenta que DROP FUNCTION en realidad no presta atención a los argumentos OUT, ya que solo se necesitan los argumentos de entrada para determinar la identidad de la función. Por lo tanto, basta con listar los argumentos IN, INOUT y VARIADIC.

nombre_arg

El nombre de un argumento. Ten en cuenta que DROP FUNCTION en realidad no presta atención a los nombres de los argumentos, ya que solo se necesitan los tipos de datos de los argumentos para determinar la identidad de la función.

tipo_arg

El tipo o tipos de datos de los argumentos de la función (opcionalmente calificados por esquema), si los hubiera.

CASCADE

Elimina automáticamente los objetos que dependen de la función (tales como operadores o disparadores), y a su vez todos los objetos que dependen de esos objetos (consulta la Section 5.15).

RESTRICT

Rechaza eliminar la función si hay objetos que dependen de ella. Este es el comportamiento predeterminado.

Ejemplos

Este comando elimina la función de raíz cuadrada:

DROP FUNCTION sqrt(integer);

Eliminar múltiples funciones en un solo comando:

DROP FUNCTION sqrt(integer), sqrt(bigint);

Si el nombre de la función es único en su esquema, se puede hacer referencia a ella sin una lista de argumentos:

DROP FUNCTION update_employee_salaries;

Ten en cuenta que esto es diferente de:

DROP FUNCTION update_employee_salaries();

el cual hace referencia a una función con cero argumentos, mientras que la primera variante puede hacer referencia a una función con cualquier número de argumentos, incluyendo cero, siempre y cuando el nombre sea único.

Compatibilidad

Este comando cumple con el estándar SQL, con las siguientes extensiones de PostgreSQL:

  • El estándar solo permite eliminar una función por comando.

  • La opción IF EXISTS

  • La capacidad de especificar los modos y nombres de los argumentos

Véase también

CREATE FUNCTION, ALTER FUNCTION, DROP PROCEDURE, DROP ROUTINE