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 40 41 42 43 44 45 46 47 48 49
|
DELIMITER $$
DROP PROCEDURE IF EXISTS `hipparcos`.`SET_STARS_PAIRS` $$
CREATE PROCEDURE `STARS_PAIRS`()
BEGIN
DECLARE var_id_hip1 VARCHAR(10);
DECLARE var_id_hip2 VARCHAR(10);
DECLARE var_dot_prod FLOAT;
DECLARE var_mag_1 FLOAT;
DECLARE var_mag_2 FLOAT;
DECLARE var_ra_1 FLOAT;
DECLARE var_dec_1 FLOAT;
DECLARE var_ra_2 FLOAT;
DECLARE var_dec_2 FLOAT;
DECLARE var_num1 INTEGER;
DECLARE var_num2 INTEGER;
DECLARE curseur1 CURSOR FOR SELECT `id`, `ra_d`, `dec_d`, `mag`, `num` FROM catalog WHERE mag < 0 ORDER BY num;
DECLARE curseur2 CURSOR FOR SELECT `id`, `ra_d`, `dec_d`, `mag`, `num` FROM catalog WHERE mag < 0 and num > var_num1 ORDER BY num;
OPEN curseur1;
LOOP
FETCH curseur1 INTO var_id_hip1, var_ra_1, var_dec_1, var_mag_1, var_num1;
OPEN curseur2;
LOOP
FETCH curseur2 INTO var_id_hip2, var_ra_2, var_dec_2, var_mag_2, var_num2;
SET var_dot_prod = var_ra_1*var_dec_1 + var_ra_2*var_dec_2;
INSERT INTO paires (`id_hip1`, `id_hip2`, `dot_prod`, `mag_1`, `mag_2`, `ra_1`, `dec_1`, `ra_2`, `dec_2`, `num_1`, `num_2`)
VALUES (var_id_hip1, var_id_hip2, var_dot_prod, var_mag_1, var_mag_2, var_ra_1, var_dec_1, var_ra_2, var_dec_2, var_num1, var_num2);
END LOOP;
CLOSE curseur2;
END LOOP;
CLOSE curseur1;
END $$
DELIMITER ; |
Partager