DROP FUNCTION — Supprimer une fonction
DROP FUNCTION [ IF EXISTS ] nom [ ( [ [ modearg ] [ nomarg ] typearg [, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
DROP FUNCTION supprime la définition d'une fonction. Seul le propriétaire de la fonction peut exécuter cette commande. Les types d'argument de la fonction doivent être précisés car plusieurs fonctions peuvent exister avec le même nom et des listes différentes d'arguments.
Ne pas renvoyer une erreur si l'agrégat n'existe pas. Un message d'avertissement est affiché dans ce cas.
Le nom (éventuellement qualifié du nom du schéma) de la fonction. Si aucune liste d'argument n'est spécifiée, le nom doit être unique dans son schéma.
Le mode d'un argument : IN, OUT, INOUT ou VARIADIC. Sans précision, la valeur par défaut est IN. DROP FUNCTION ne s'intéresse pas aux arguments OUT car seuls ceux en entrée déterminent l'identité de la fonction. Il est ainsi suffisant de lister les arguments IN, INOUT et VARIADIC.
Le nom d'un argument. DROP FUNCTION ne tient pas compte des noms des arguments car seuls les types de données sont nécessaires pour déterminer l'identité de la fonction.
Le(s) type(s) de données des arguments de la fonction (éventuellement qualifié(s) du nom du schéma).
Les objets qui dépendent de la fonction (opérateurs ou déclencheurs) sont automatiquement supprimés, ainsi que tous les objets dépendants de ces objets (voir Section 5.13, « Gestion des dépendances »).
La fonction n'est pas supprimée si un objet en dépend. Comportement par défaut.
Supprimer la fonction de calcul d'une racine carrée :
DROP FUNCTION sqrt(integer);
Supprimer plusieurs fonctions en une commande :
DROP FUNCTION sqrt(integer), sqrt(bigint);
Si le nom de fonction est unique dans son schéma, il peut être utilisé sans liste d'argument :
DROP FUNCTION update_employee_salaries;
Veuillez noter que c'est différent de :
DROP FUNCTION update_employee_salaries();
Qui se réfère à une fonction avec zéro argument, alors que la première variante peut se référer à une fonction ayant n'importe quel nombre d'arguments, y compris zéro, du moment que le nom est unique.