© Éditions Eyrolles
233
Chapitre 7
Programmation avancée
Ce chapitre est consacré à des caractéristiques avancées du langage procédural de MySQL :
q
écriture et appel de sous-programmes ;
q
programmation des curseurs ;
q
gestion des exceptions ;
q
mise en place de déclencheurs ;
q
utilisation du SQL dynamique.
Sous-programmes
Les sous-programmes sont des blocs nommés qui sont compilés et qui résident dans la base
de données. Dans le vocabulaire des bases de données, on appelle les sous-programmes stored
procedures ou stored routines. Ce sont des fonctions ou procédures « cataloguées » (ou
« stockées ») capables d’inclure des paramètres en entrée. Comme dans tous les langages de
programmation, les fonctions retournent un unique résultat, alors que les procédures réalisent
des actions sans en donner (sauf éventuellement en paramètre de sortie).
Étant un des plus « jeunes » des SGBD, MySQL tend au plus près (en ajoutant toutefois des
extensions) de la syntaxe normative de SQL:2003 (sections Stored Modules et Computational
completeness ). L’autre SGBD se rapprochant le plus de la norme est DB2 d’IBM. Oracle et
SQL Server de Microsoft ont un grand nombre de caractéristiques absentes de la norme.
Pour l’instant, seules les procédures sont capables d’inclure des paramètres en sortie.
Un sous-programme ne se recompile pas automatiquement suite à la modification d’un objet
de la base manipulé dans son code (ajout d’une colonne dans une table par exemple).
Généralités
Il est possible de retrouver le code d’un sous-programme au niveau du dictionnaire des
données (voir la fin du chapitre 5). Le sous-programme peut être ainsi partagé dans un
233
Chapitre 7
Programmation avancée
Ce chapitre est consacré à des caractéristiques avancées du langage procédural de MySQL :
q
écriture et appel de sous-programmes ;
q
programmation des curseurs ;
q
gestion des exceptions ;
q
mise en place de déclencheurs ;
q
utilisation du SQL dynamique.
Sous-programmes
Les sous-programmes sont des blocs nommés qui sont compilés et qui résident dans la base
de données. Dans le vocabulaire des bases de données, on appelle les sous-programmes stored
procedures ou stored routines. Ce sont des fonctions ou procédures « cataloguées » (ou
« stockées ») capables d’inclure des paramètres en entrée. Comme dans tous les langages de
programmation, les fonctions retournent un unique résultat, alors que les procédures réalisent
des actions sans en donner (sauf éventuellement en paramètre de sortie).
Étant un des plus « jeunes » des SGBD, MySQL tend au plus près (en ajoutant toutefois des
extensions) de la syntaxe normative de SQL:2003 (sections Stored Modules et Computational
completeness ). L’autre SGBD se rapprochant le plus de la norme est DB2 d’IBM. Oracle et
SQL Server de Microsoft ont un grand nombre de caractéristiques absentes de la norme.
Pour l’instant, seules les procédures sont capables d’inclure des paramètres en sortie.
Un sous-programme ne se recompile pas automatiquement suite à la modification d’un objet
de la base manipulé dans son code (ajout d’une colonne dans une table par exemple).
Généralités
Il est possible de retrouver le code d’un sous-programme au niveau du dictionnaire des
données (voir la fin du chapitre 5). Le sous-programme peut être ainsi partagé dans un
