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
.