MySQL - ERROR con Función Recursiva

 
Vista:
sin imagen de perfil
Val: 23
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

ERROR con Función Recursiva

Publicado por Juan (25 intervenciones) el 04/02/2019 18:41:46
Buenas gente

Estoy tratando de hacer funcionar esta función recursiva, pero al declarar la FUNCTION me sale error de Sintaxis SQL
1
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 '' at line 3
Estoy trabajando con MySQL 5.7. No sé, si observáis algún error en el código que uso, que es el siguiente:

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
DROP PROCEDURE IF EXISTS getPadre;
 
DELIMITER $$
CREATE PROCEDURE getPadre(IN padre_id INT UNSIGNED, OUT return_path TEXT)
BEGIN
    DECLARE parent_id INT UNSIGNED;
    DECLARE path_result TEXT;
    SET max_sp_recursion_depth=50;
 
    SELECT CONCAT('/', ma.nombre), ma.padre INTO return_path, parent_id FROM nc_matrices AS ma WHERE ma.id = padre_id;
    IF parent_id > 0 THEN
     CALL getPadre(parent_id, path_result);
     SELECT CONCAT(path_result, return_path) INTO return_path;
    END IF;
END $$
DELIMITER ;
 
DROP FUNCTION IF EXISTS getPadre;
 
CREATE FUNCTION getPadre(padre_id INT) RETURNS TEXT DETERMINISTIC
BEGIN
  DECLARE res TEXT;
  CALL getPadre(padre_id, res);
  RETURN res;
END;
 
SELECT nombre, id, getPadre(id) AS PadreNombre FROM nc_matrices;

Los resultados que esperaría son en cada fila:
nombre id PadreNombre

Siendo PadreNombre una cadena en la que se muestran los Nombres desde el raíz hasta el nodo actual.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder