1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| CREATE PROCEDURE CREATE_BRANDS()
BEGIN
/**
* Flag : définit la fin de la lecture de la table CONTENT.
*/
DECLARE done INT DEFAULT 0;
/**
* Variable MYBRANDS
* Liste les marques.
*/
DECLARE myBrand VARCHAR(35);
/**
* Création d'un curseur pour lecture de la table CONTENT.
* Ce curseur stocke l'ensemble des marques.
*/
DECLARE BRANDCURSOR CURSOR FOR SELECT BRAND FROM CONTENT GROUP BY BRAND;
/**
* Gestionnaire de fin d'exécution du traitement de la requête.
*/
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
/**
* Ouverture du curseur.
*/
OPEN BRANDCURSOR;
/**
* Lit les résultats tant que done = 1, les écrits dans la marque.
*/
REPEAT
FETCH BRANDCURSOR INTO myBrand;
IF done = 0 THEN
INSERT INTO BRAND (LIBELLE) VALUES (myBrand) ON DUPLICATE KEY UPDATE LIBELLE = myBrand;
END IF;
UNTIL done
END REPEAT;
/**
* Fermeture du curseur.
*/
CLOSE BRANDCURSOR;
END |
Partager