DROP ROUTINE — remove uma rotina
DROP ROUTINE [ IF EXISTS ]nome[ ( [ [modo_do_argumento] [nome_do_argumento]tipo_de_dados_do_argumento[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
O comando DROP ROUTINE remove a definição de uma
ou mais rotinas existentes.
O termo “rotina” inclui funções de agregação, funções
normais e procedimentos.
Veja em DROP AGGREGATE,
DROP FUNCTION, e
DROP PROCEDURE a descrição dos parâmetros,
mais exemplos, e mais detalhes.
As regras de procura usadas por DROP ROUTINE
são basicamente as mesmas que para DROP PROCEDURE;
em particular, DROP ROUTINE compartilha o
comportamento desse comando de considerar uma lista de argumentos
sem marcadores de
modo_do_argumento
possivelmente usando a definição do padrão SQL
de que os argumentos OUT estão incluídos na lista.
(Os comandos DROP AGGREGATE e
DROP FUNCTION não fazem isto.)
Em alguns casos onde o mesmo nome é compartilhado por rotinas com
tipos de dados diferentes, é possível que
DROP ROUTINE falhe com um erro de ambiguidade
onde um comando mais específico (DROP FUNCTION,
etc.) funcionaria.
Especificar a lista dos tipos de dados dos argumentos com mais
cuidado também resolve este problema.
Estas regras de procura também são usadas por outros comandos que
atuam em rotinas existentes, como ALTER ROUTINE e
COMMENT ON ROUTINE.
Para remover a rotina foo para o tipo
integer:
DROP ROUTINE foo(integer);
Este comando funciona independentemente de foo
ser uma função de agregação, uma função normal, ou um procedimento.
Este comando está em conformidade com o padrão SQL, com as seguintes extensões do PostgreSQL:
O padrão permite a remoção de apenas uma rotina por comando.
A cláusula IF EXISTS.
A capacidade de especificar modos e nomes dos argumentos, e as regras de procura diferem quando os modos são fornecidos.
Funções de agregação definidas pelo usuário.
Note não existir o comando CREATE ROUTINE.