Bonjour,

Je fais une procedure stockée avec mysql et je ne peux utiliser les if else à l'intérieur.
J'utilise la procedure depuis un programme extérieur.

L'idée est pour moi de récuperer le id d'un Tuple si celui-ci existe sinon -1.

Est-ce que quelqu'un peut m'aider pour la syntaxe??
NB Sans le if else la procedure marche tres bien


Voici la procedure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
DROP PROCEDURE IF EXISTS is_leg_id_in_database;
DELIMITER $$                                                      
CREATE PROCEDURE is_leg_id_in_database (IN given_airline_cd VARCHAR(3),
									   IN given_flight_nr INT,
									   IN given_arp_dep varchar(3),
									   IN given_arp_arr varchar(3), 
									   IN given_time_dep int, 
									   IN given_time_arr INT,
									   IN given_op_airline_cd VARCHAR(3),
									   IN given_leg_sequence_nr INT,
									  OUT id_leg INT)  
 
BEGIN
   DECLARE tmp_var INT;
    SELECT TW_LEG_ID as tmp_var 
	 from TW_LEG 
	 where     AIRLINE_CD    = given_airline_cd 
	       and FLIGHT_NUMBER = given_flight_nr
	       and DEP_ARP_CD    = given_arp_dep
	       and ARR_ARP_CD    = given_arp_arr
	 		 and S_TIME_DEP    = given_time_dep
			 and S_TIME_ARR    = given_time_arr
			 and OP_AIRLINE_CD = given_op_airline_cd
			 and given_leg_sequence_nr = given_leg_sequence_nr; 
 
//************** Ici ce qui ne marche pas
	IF (tmp_var > 0)
	then SET id_leg = tmp_var;	   
	else SET id_leg = -1;	
	END IF;
//******************
 
 
END $$
 
DELIMITER ;
Merci d'avance

marc_3