Documentation PostgreSQL 14.22 » Référence » Commandes SQL » DROP ROUTINE

Précédent | Niveau supérieur | Suivant
DROP ROLE | Sommaire | DROP RULE

## DROP ROUTINE

DROP ROUTINE — Supprimer une routine

## Synopsis

    DROP ROUTINE [ IF EXISTS ] nom [ ( [ [ mode_arg ] [ nom_arg ] type_arg [, ...] ] ) ] [, ...]
        [ CASCADE | RESTRICT ]

## Description

`DROP ROUTINE` supprime la définition d'une routine existante ou de plusieurs. Le terme « routine » inclut les fonctions d'agrégat, les fonctions normales et les procédures. Voir DROP AGGREGATE, DROP FUNCTION, et DROP PROCEDURE pour la description des paramètres, plus d'exemples, et de détails.

## Notes

Les règles de recherche utilisées par `DROP ROUTINE` sont fondamentalement les mêmes que pour `DROP PROCEDURE` ; en particulier, `DROP ROUTINE` considère lui-aussi une liste d'arguments qui n'a pas de marqueurs `argmode` comme utilisant probablement la définition du standard SQL pour laquelle des arguments `OUT` sont inclus dans la liste. (`DROP AGGREGATE` et `DROP FUNCTION` ne le fait pas.)

Dans certains cas où le même nom est partagé par des routines de type différent, il est possible que `DROP ROUTINE` échoue avec une erreur d'ambiguïté quand une commande plus spécifique (`DROP FUNCTION`, etc.) fonctionnerait. Indiquer précisément la liste des types d'arguments peut aussi résoudre de tels problèmes.

Ces règles de recherche sont aussi utilisées par d'autres commandes qui agissent sur les routines existantes, telles que `ALTER ROUTINE` et `COMMENT ON ROUTINE`.

## Exemples

Pour supprimer la routine `foo` pour le type `integer` :

    DROP ROUTINE foo(integer);

Cette commande fonctionnera indépendamment du type de `foo` (fonction d'agrégat, fonction, procédure).

## Compatibilité

Cette commande se conforme au standard SQL, avec ces extensions PostgreSQL :

- Le standard autorise aussi la suppression d'une routine par commande.

- L'option `IF EXISTS` est une extension.

- La possibilité de spécifier les modes et noms des arguments est une extension, et les règles de recherche diffèrent quand les modes sont indiqués.

- Les fonctions d'agrégat définies par les utilisateurs sont une extension.

## Voir aussi

DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

Notez qu'il n'existe pas de commande `CREATE ROUTINE`.