DROP ROUTINE — elimina una rutina
DROP ROUTINE [ IF EXISTS ]nombre[ ( [ [modo_arg] [nombre_arg]tipo_arg[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
DROP ROUTINE elimina la definición de una o más
rutinas existentes. El término “rutina” incluye
funciones de agregación, funciones normales y procedimientos. Consulta
las secciones DROP AGGREGATE, DROP FUNCTION
y DROP PROCEDURE para obtener la descripción de los
parámetros, más ejemplos y detalles adicionales.
Las reglas de búsqueda utilizadas por DROP ROUTINE son
fundamentalmente las mismas que para DROP PROCEDURE; en
particular, DROP ROUTINE comparte el comportamiento de ese
comando al considerar que una lista de argumentos que no tiene marcadores
modo_arg podría estar utilizando
la definición del estándar SQL en la que se incluyen los argumentos OUT
en la lista. (DROP AGGREGATE
y DROP FUNCTION no hacen eso).
En algunos casos en los que el mismo nombre es compartido por rutinas de diferentes
tipos, es posible que DROP ROUTINE falle con un error de
ambigüedad cuando un comando más específico (DROP FUNCTION, etc.)
funcionaría. Especificar la lista de tipos de argumentos con mayor cuidado también
resolverá dichos problemas.
Estas reglas de búsqueda también las utilizan otros comandos que actúan sobre
rutinas existentes, como ALTER ROUTINE y
COMMENT ON ROUTINE.
Para eliminar la rutina foo para el tipo
integer:
DROP ROUTINE foo(integer);
Este comando funcionará independientemente de si foo es una
agregación, una función o un procedimiento.
Este comando cumple con el estándar SQL, con las siguientes extensiones de PostgreSQL:
El estándar solo permite eliminar una rutina por comando.
La opción IF EXISTS es una extensión.
La capacidad de especificar los modos y nombres de los argumentos es una extensión, y las reglas de búsqueda difieren cuando se especifican los modos.
Las funciones de agregación definidas por el usuario son una extensión.
Ten en cuenta que no existe el comando CREATE ROUTINE.