Bonjour!

Le problème à changé donc je pense qu'il mérite son post!
Le problème:
Une table T_RESEAU qui liste des réseaux. Ces réseaux ont 3 champs: ID(pk), intitule, indice.

Un réseau peut être monté de version, auquel cas, un réseau de même intitule et d'indice supérieur sera créé:
Ex: FH-Paris d'indice 0 sera le père du FH-Paris d'indice 1

Il y a dans la base de donnée une contrainte d'unicité sur le couple (nom, indice).

Pour une raison d'évolution (intitule du fils changé par l'utilisateur = lien de paternité perdu) j'ai créé une relation père-fils entre les réseau: foreign key parent_id dans la table T_RESEAU par défaut nulle.

J'aimerais maintenant mettre à jour cette colonne en insérant aux réseaux fils l'id de leur réseau père.

Procédure stockée:

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
DELIMITER |
CREATE PROCEDURE proc()
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE id INT;
  DECLARE intitule CHAR(50);
  DECLARE id_pere INT;
  DECLARE cur CURSOR FOR SELECT RES_ID_N, RES_INTITULE_C FROM T_RESEAU WHERE RES_INDICE_N=1;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
 
  OPEN cur;
 
  read_loop: LOOP
    FETCH cur INTO id, intitule;
    IF done THEN
      LEAVE read_loop;
    END IF;
 
    id_pere = SELECT RES_ID_N FROM T_RESEAU WHERE RES_INDICE_N=0 AND RES_INTITULE_C LIKE intitule;
    UPDATE T_RESEAU SET RES_PARENT = id_pere WHERE RES_ID_N=id;
 
  END LOOP;
 
  CLOSE cur;
END|
A l'exécution, cette procédure donne l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= SELECT RES_ID_N FROM T_RESEAU WHERE RES_INDICE_N=0 AND RES_INTITULE_C like int' at line 18
Qu'en pensez vous?
Auriez vous svp une idée des raisons de l'erreur? Merci!