Professional Documents
Culture Documents
ENSAO MYSQL++
Benabdallah Mohammed
2
MySQL ++
Environnement
Création de la base de données
On se connecter à MySQL :
Veuillez vérifier que votre version de MySQL est supérieure ou égale à 5.1.0
On crée une base de données « test » sur laquelle nous allons travailler.
`prenom` VARCHAR (30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
Déclencheurs (TRIGGER)
La création de déclencheurs nécessite le privilège SUPER, pour faire simple je me connecte avec le
super-utilisateur root.
Exemple :
delimiter //
CREATE TRIGGER ins_check BEFORE INSERT ON etudiant
FOR EACH ROW
BEGIN
IF NEW.age < 0 THEN
SET NEW.age = 0;
END IF;
END //
delimiter ;
Tester l’exemple :
Il suffit d’insérer un enregistrement avec un âge négatif pour activer le trigger :
Benabdallah Mohammed
4
MySQL ++
Vous remarquer que l’âge est remis à zéro, c’est la preuve que le trigger s’est bien exécuté.
Gère aussi les objets NEW et OLD ainsi que les curseurs.
La gestion d’exception est plus difficile en MySQL, en effet il faut déclarer un Handler pour la gérer
(voir Handler).
ATTENTION :
Vue que la définition des trigger utilise des « ; » points-virgules, penser à changer de
délimiteur avant d’écrire votre trigger (delimiter //) et n’oubliez pas de le restaurer après
(delimiter ;).
Une comparaison entre les Trigger MySQL et Oracle a été publié par Oracle sur ce lien.
Benabdallah Mohammed
5
MySQL ++
Procédures et Fonctions
Exemple de procédure:
Dans la ligne de commande créez la procédure suivante.
delimiter |
BEGIN
END
delimiter ;
Exemple de fonction:
SET GLOBAL log_bin_trust_function_creators = 1;
delimiter |
CREATE FUNCTION bonjour (s CHAR(20)) RETURNS CHAR(50)
RETURN CONCAT('Bonjour, ',s,'!');
|
SELECT bonjour('le monde')|
delimiter ;
Benabdallah Mohammed
6
MySQL ++
/**
import java.sql.CallableStatement;
/**
Benabdallah Mohammed
7
MySQL ++
smt.registerOutParameter(1, java.sql.Types.INTEGER);
rs = smt.executeQuery();
int x = smt.getInt(1);
smt.execute();
Curseurs
Exemple de curseur :
Nous allons ecrire une procédure qui parcourt la table « etudiant » et copie toutes les lignes dans la
table « etudiant2 » pour cela créer la table « etudiant2 ».
CALL DemoCurs() ;
Conclusion
Benabdallah Mohammed
9