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.
IF EXISTS
Ne pas renvoyer une erreur si l'agrégat n'existe pas. Un message d'avertissement est affiché dans ce cas.
nom
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.
modearg
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
.
nomarg
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.
typearg
Le(s) type(s) de données des arguments de la fonction (éventuellement qualifié(s) du nom du schéma).
CASCADE
Les objets qui dépendent de la fonction (opérateurs ou triggers) sont automatiquement supprimés, ainsi que tous les objets dépendants de ces objets (voir Section 5.14).
RESTRICT
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.
Cette commande est conforme avec le standard SQL, avec ces extensions PostgreSQL :
Le standard n'autorise qu'une seule fonction à être supprimée par commande.
L'option IF EXISTS
La possibilité de spécifier les modes et noms d'argument.