DROP ROUTINE — Supprimer une routine
DROP ROUTINE [ IF EXISTS ]nom[ ( [ [mode_arg] [nom_arg]type_arg[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
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.
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.
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).
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.
Notez qu'il n'existe pas de commande CREATE ROUTINE.