ALTER EXTENSION — modifie la définition d'une extension
ALTER EXTENSIONnom
UPDATE [ TOnouvelle_version
] ALTER EXTENSIONnom
SET SCHEMAnouveau_schéma
ALTER EXTENSIONnom
ADDobjet_membre
ALTER EXTENSIONnom
DROPobjet_membre
oùobjet_membre
peut être : ACCESS METHODnom_objet
| AGGREGATEnom_agrégat
(signature_agrégat
) | CAST (type_source
AStype_cible
) | COLLATIONnom_objet
| CONVERSIONnom_objet
| DOMAINnom_objet
| EVENT TRIGGERnom_objet
| FOREIGN DATA WRAPPERnom_objet
| FOREIGN TABLEnom_objet
| FUNCTIONnom_fonction
[ ( [ [mode_arg
] [nom_arg
]type_arg
[, ...] ] ) ] | MATERIALIZED VIEWnom_objet
| OPERATORnom_opérateur
(type_gauche
,type_droit
) | OPERATOR CLASSnom_objet
USINGméthode_indexage
| OPERATOR FAMILYnom_objet
USINGméthode_indexage
| [ PROCEDURAL ] LANGUAGEnom_objet
| PROCEDUREnom_procédure
[ ( [ [mode_arg
] [nom_arg
]type_arg
[, ...] ] ) ] | ROUTINEnom_routine
[ ( [ [mode_arg
] [nom_arg
]type_arg
[, ...] ] ) ] | SCHEMAnom_objet
| SEQUENCEnom_objet
| SERVERnom_objet
| TABLEnom_objet
| TEXT SEARCH CONFIGURATIONnom_objet
| TEXT SEARCH DICTIONARYnom_objet
| TEXT SEARCH PARSERnom_objet
| TEXT SEARCH TEMPLATEnom_objet
| TRANSFORM FORnom_type
LANGUAGEnom_langage
| TYPEnom_objet
| VIEWnom_objet
etsignature_agrégat
est : * | [mode_arg
] [nom_arg
]type_arg
[ , ... ] | [ [mode_arg
] [nom_arg
]type_arg
[ , ... ] ] ORDER BY [mode_arg
] [nom_arg
]type_arg
[ , ... ]
ALTER EXTENSION
modifie la définition d'une extension.
Il existe plusieurs variantes :
UPDATE
Met à jour l'extension avec une nouvelle version. L'extension doit fournir le script de mise à jour adéquat (voire un ensemble de scripts) qui peut modifier la version en cours vers la version demandée.
SET SCHEMA
Déplace les objets de l'extension vers un autre schéma. L'extension doit permettre que ses objets soient déplacés pour que cette commande fonctionne.
ADD objet_membre
Ajoute un objet existant à l'extension. Cette commande est utilisée principalement dans les scripts de mise à jour d'extensions. L'objet concerné sera alors considéré comme appartenant à l'extension. Cela signifie principalement que l'objet ne pourra être supprimé qu'en supprimant l'extension.
DROP objet_membre
Supprime un objet de l'extension. Cette commande est utilisée principalement dans les scripts de mise à jour d'extensions. L'objet n'est pas supprimé : il n'appartient simplement plus à l'extension.
Voir aussi Section 37.17 pour des informations complémentaires sur les extensions.
Seul le propriétaire de l'extension peut utiliser la commande ALTER EXTENSION
pour supprimer l'extension.
Les options ADD
ou DROP
nécessitent en complément d'être le propriétaire
de l'objet concerné par l'ajout ou la suppression.
nom
Le nom de l'extension concernée.
nouvelle_version
La nouvelle version de l'extension à installer. Il peut autant s'agir d'un identifiant
que d'une chaîne de caractère. Si cette version n'est pas spécifiée, la commande
ALTER EXTENSION UPDATE
va utiliser tous les éléments de la
version par défaut mentionnés dans le fichier de contrôle de l'extension.
nouveau_schéma
Le nouveau schéma vers lequel déplacer l'extension.
nom_objet
nom_agregat
nom_fonction
nom_opérateur
nom_procédure
nom_routine
Le nom d'un objet qui sera ajouté ou retiré de l'extension. Les noms de tables, agrégats, domaines, tables distantes, fonctions, opérateurs, classes d'opérateurs, familles d'opérateurs, procédures, routines, séquences, objets de recherche de texte, types et vues peuvent être qualifiés du nom du schéma.
type_source
Le nom d'un type de données source d'un transtypage.
type_cible
Le nom du type de donnée cible d'un transtypage.
mode_arg
Le mode du paramètre d'une fonction, d'une procédure ou d'un agrégat : IN
, OUT
,
INOUT
ou VARIADIC
.
La valeur par défaut est IN
.
Notez que la commande ALTER EXTENSION
ne tient en réalité pas compte
des paramètres dont le mode est OUT
, car les paramètres
en entrée sont suffisants pour déterminer la signature de la fonction.
Il est ainsi possible de ne spécifier que les paramètres de mode IN
,
INOUT
et VARIADIC
.
nom_arg
Le nom du paramètre de la fonction, de la procédure, ou de l'agrégat concerné.
Notez que la commande ALTER EXTENSION
ne tient pas
compte en réalité des noms de paramètre, car les types de données
sont suffisants pour déterminer la signature de la méthode.
type_arg
Le(s) type(s) de donnée des paramètres de la fonction, de la procédure ou de l'agrégat concerné (éventuellement qualifié du nom du schéma).
type_gauche
type_droit
Le type de données des arguments (éventuellement qualifié du nom du
schéma) d'une fonction, d'une procédure ou d'un agrégat. Écrire
NONE
pour l'argument manquant d'un opérateur préfixé
ou postfixé.
PROCEDURAL
Le mot clé PROCEDURAL
n'est pas nécessaire. Il peut
être omis.
nom_type
Le nom du type de données pour la transformation.
nom_language
Le nom du langage pour la transformation.
Pour mettre à jour l'extension hstore
à la version
2.0 :
ALTER EXTENSION hstore UPDATE TO '2.0';
Pour modifier le schéma de l'extension hstore
vers
utils
:
ALTER EXTENSION hstore SET SCHEMA utils;
Pour ajouter une procédure stockée existante à l'extension
hstore
:
ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);
ALTER EXTENSION
est une extension de
PostgreSQL.