DROP FUNCTION — elimina una función
DROP FUNCTION [ IF EXISTS ]nombre[ ( [ [modo_arg] [nombre_arg]tipo_arg[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
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.
IF EXISTSNo arroja un error si la función no existe. Se emite una advertencia (notice) en este caso.
nombreEl 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_argEl tipo o tipos de datos de los argumentos de la función (opcionalmente calificados por esquema), si los hubiera.
CASCADEElimina 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).
RESTRICTRechaza eliminar la función si hay objetos que dependen de ella. Este es el comportamiento predeterminado.
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.
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