ALTER PROCEDURE — Modifier la définition d'une procédure
ALTER PROCEDUREnom[ ( [ [mode_arg] [nom_arg]type_arg[, ...] ] ) ]action[ ... ] [ RESTRICT ] ALTER PROCEDUREnom[ ( [ [mode_arg] [nom_arg]type_arg[, ...] ] ) ] RENAME TOnouveau_nomALTER PROCEDUREnom[ ( [ [mode_arg] [nom_arg]type_arg[, ...] ] ) ] OWNER TO {nouveau_propriétaire| CURRENT_USER | SESSION_USER } ALTER PROCEDUREnom[ ( [ [mode_arg] [nom_arg]type_arg[, ...] ] ) ] SET SCHEMAnouveau_schemaALTER PROCEDUREnom[ ( [ [mode_arg] [nom_arg]type_arg[, ...] ] ) ] DEPENDS ON EXTENSIONnom_extensionoùactionfait partie de : [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER SETparamètre_de_configuration{ TO | = } {valeur| DEFAULT } SETparamètre_de_configurationFROM CURRENT RESETparamètre_de_configurationRESET ALL
   ALTER PROCEDURE modifie la définition d'une procédure.
  
   Seul le propriétaire de la procédure peut utiliser ALTER PROCEDURE.
   Le droit CREATE sur le nouveau schéma est requis
   pour pouvoir changer le schéma de la procédure.
   Pour modifier le propriétaire, il est nécessaire d'être membre
   direct ou indirect du nouveau rôle propriétaire. Ce dernier doit posséder le
   droit CREATE sur le schéma de la procédure. Ces
   restrictions assurent que la modification du propriétaire n'a pas d'effets autres
   que ceux obtenus par la suppression et la re-création de la procédure ;
   toutefois, un superutilisateur peut modifier
   le propriétaire de n'importe quelle procédure.
  
nomLe nom d'une procédure existante (éventuellement qualifié par le schéma). Si aucune liste d'arguments n'est spécifiée, le nom doit être unique dans son schéma.
mode_arg
      Le mode d'un argument : IN ou VARIADIC.
      Si non précisé, le défaut est IN.
     
nom_arg
      Le nom d'un argument.
      Notez que ALTER PROCEDURE ne fait pas vraiment
      attention aux noms des arguments, puisqu'il n'a besoin que des types
      des arguments pour déterminer la procédure.
     
type_argLes types de données des arguments de la procédure (éventuellement qualifiés par le schéma), s'il y en a.
nouveau_nomLe nouveau nom de la procédure.
nouveau_propriétaire
      Le nouveau propriétaire de la procédure. Si cette procédure est
      marquée SECURITY DEFINER, elle s'exécute par la suite
      sous cette identité.
     
nouveau_schemaLe nouveau schéma de la procédure.
nom_extensionLe nom de l'extension dont la procédure dépend.
[ EXTERNAL ] SECURITY INVOKER[ EXTERNAL ] SECURITY DEFINER
      Précise si la procédure doit être appelée avec les droits de l'utilisateur
      qui l'a créée.
      Le mot clé EXTERNAL, ignoré, existe pour des raisons
      de compatibilité SQL. Voir CREATE PROCEDURE pour plus
      d'informations.
     
paramètre_de_configurationvaleur
      Ajoute ou modifie l'initialisation d'un paramètre de configuration
      lorsque la procédure est appelée. Si valeur
      est DEFAULT ou, de façon équivalente, si
      RESET est utilisé, le paramètre local de la procédure
      est supprimé pour que la procédure s'exécute avec la valeur par défaut
      du paramètre. Utiliser RESET ALL supprime toutes les
      valeurs spécifiques des paramètres pour cette procédure.
      SET FROM CURRENT sauvegarde la valeur actuelle du
      paramètre quand ALTER PROCEDURE est exécuté comme
      valeur à appliquer lors de l'exécution de la procédure.
     
Voir SET et Chapitre 19 pour plus d'informations sur les noms des paramètres et les valeurs autorisés.
RESTRICTIgnoré, présent pour des raisons de conformité avec le standard SQL.
   Renommer la procédure insert_data ayant deux arguments
   de type integer vers insert_record :
   
ALTER PROCEDURE insert_data(integer, integer) RENAME TO insert_record;
   Changer le propriétaire de la procédure insert_data
   ayant deux arguments de type integer vers joe :
   
ALTER PROCEDURE insert_data(integer, integer) OWNER TO joe;
   Changer le schéma de la procédure insert_data ayant deux
   arguments de type integer vers accounting :
   
ALTER PROCEDURE insert_data(integer, integer) SET SCHEMA accounting;
   Marquer la procédure insert_data(integer, integer) comme
   dépendante de l'extension myext :
   
ALTER PROCEDURE insert_data(integer, integer) DEPENDS ON EXTENSION myext;
Pour ajuster automatiquement le chemin de recherche des schémas pour une procédure :
ALTER PROCEDURE check_password(text) SET search_path = admin, pg_temp;
   Pour désactiver le paramètre search_path d'une
   procédure :
   
ALTER PROCEDURE check_password(text) RESET search_path;
La procédure s'exécutera maintenant avec la valeur de la session pour cette variable.
   La compatibilité de cette instruction avec l'instruction
   ALTER PROCEDURE du standard SQL est partielle. Le standard autorise la
   modification d'un plus grand nombre de propriétés d'une procédure mais ne
   laisse pas la possibilité de renommer une procédure, de placer le commutateur
   SECURITY DEFINER sur la procédure, d'y attacher des valeurs
   de paramètres ou d'en modifier le
   propriétaire, le schéma ou la volatilité. Le standard
   requiert le mot clé RESTRICT ; il est optionnel avec
   PostgreSQL.