DROP ROUTINE

DROP ROUTINE — remove uma rotina

Sinopse

DROP ROUTINE [ IF EXISTS ] nome
                   [ ( [ [ modo_do_argumento ]
                         [ nome_do_argumento ]
                           tipo_de_dados_do_argumento
                       [, ...] ]
                   ) ]
             [, ...]
             [ CASCADE | RESTRICT ]

Descrição

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.

Notas

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.

Exemplos

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.

Conformidade

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.

Veja também

DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

Note não existir o comando CREATE ROUTINE.