29-08-2017, 06:50 PM
(Modification du message : 29-08-2017, 07:01 PM par Theotime74.)
Merci pour ce cadeau, spécialement pour le CURSOR, ça m'a beaucoup aidé.
Voila un premier jet:
Je sait que pour le moment je pourrait seulement utiliser la ligne INSERT mais je vais ajouter d'autres insertions dans le LOOP à l'avenir.
ça me parait plus claire comme ça.
Voila un premier jet:
Code :
DELIMITER |
CREATE PROCEDURE calcul_trajet (IN int_heure_1 INT, IN int_heure_2 INT)
BEGIN
DECLARE int_id_trajet INT;
DECLARE c_trajet CURSOR FOR SELECT id FROM trajet WHERE trajet.heured >= int_heure_1 AND trajet.heurea < int_heure_2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN c_trajet;
read_loop: LOOP
FETCH c_trajet INTO int_id_trajet;
IF done THEN
LEAVE read_loop;
END IF;
INSERT INTO event( type, heure, val1 ) SELECT 'FinTrajet', trajet.heurea, calcul_passager(trajet.id) FROM trajet WHERE trajet.id = int_id_trajet;
END LOOP;
END |
Je sait que pour le moment je pourrait seulement utiliser la ligne INSERT mais je vais ajouter d'autres insertions dans le LOOP à l'avenir.
ça me parait plus claire comme ça.