Bonjour à tous,
Je débute dans les procédures mysql 5 et je suis bloqué sur cette erreur, voici une fonction que j'essaye de stocker :
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
 
DROP FUNCTION IF EXISTS formation.get_context_id;
DELIMITER $$
CREATE FUNCTION formation.get_context_id(field_name VARCHAR(255), field_data VARCHAR(255)) returns INTEGER
BEGIN
DECLARE context_type VARCHAR(255);
DECLARE instance_id BIGINT(10) DEFAULT 0;
DECLARE context_id BIGINT(10) DEFAULT 0;
SET context_type = SUBSTRING_INDEX(field_name,'_',1);
IF context_type='category' THEN SELECT id INTO instance_id FROM formation.course_categories WHERE name=field_data LIMIT 1;
ELSEIF context_type='course' THEN SELECT id INTO instance_id FROM formation.course WHERE fullname=field_data LIMIT 1;
ENDIF;
SELECT id INTO context_id FROM formation.context WHERE instanceid=instance_id LIMIT 1;
return context_id;
END$$
Il me répond qu'il y a une erreur sur la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT id INTO context_id FROM formation.context WHERE instanceid=instance_id LIMIT 1;
Est-ce quelqu'un voit pourquoi? Je pensais à un mot réservé, mais quand je rajoute des `` ça ne change rien. D'avance merci.