Formation PUB200 : MySQL, 2018 Les procédures et fonctions stockées

15.6 Créer une procédure ou fonction stockée


Création d'une procédure stockée

La création d'une procédure stockée se fait à l'aide de la commande CREATE PROCEDURE. Assurez-vous d'avoir d'abord sélectionné la base de données avec laquelle la procédure stockée doit travailler.

Il n'y a pas de norme établie quant aux règles de nomenclature des procédures stockées, à part le fait que vous devez adopter une norme et la suivre partout. Vous pourriez, par exemple, choisir d'utiliser une barre de soulignement pour séparer les mots formant le nom de la procédure stockée.

On précise les paramètres entre parenthèses. Les détails sur les paramètres seront donnés dans les fiches suivantes.

Tout le corps de la procédure sera ensuite écrit entre les instructions BEGIN et END.

Ex :

MySQL

CREATE PROCEDURE nombre_rendezvous (...)

BEGIN

   ...

END!!

Création d'une fonction stockée

Pour créer une fonction stockée, on utilisera CREATE FUNCTION.

Notez qu'il faut toujours faire suivre la déclaration d'une fonction par l'instruction RETURNS (notez le S) puis du type de la valeur de retour.

Afin d'assurer une sécurité des données optimale, les fonctions stockées sont plus restrictives que les procédures. C'est pourquoi, il faudra ajouter les instructions READS SQL DATA pour indiquer que la fonction stockées lira les données des tables de la BD. Ceci n'a qu'un effet de documentation.

Comme pour la procédure stockée, le corps de la fonction sera placé entre les instructions BEGIN et END. Notez cependant qu'il doit absolument y avoir une instruction RETURN (cette fois, pas de S) avant le END.

Ex :

MySQL

CREATE FUNCTION dernier_rendezvous(...) RETURNS DATETIME    

READS SQL DATA

BEGIN

   ...

   RETURN ...;

END!!

Pour plus d'information

« 13.1.12 CREATE PROCEDURE and CREATE FUNCTION Syntax ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre